Ich brauche Berichtsebene dll, wo, wenn wir diese dll dann einige Repors zeigen werden..Für, dass ich Klassenbibliothek CustomeReports..in dieser Klassendatei erstellt haben ich habe die Auflistung einige dynamische Berichte wie Sie unten Code sehen ...check dll existieren und basierend auf diesem Eigenschaften der Klassenbibliothek verwenden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CustomeReports
{
public class keyPairTextC
{
public bool keyID { get; set; }
public string keyN { get; set; }
public string keyE { get; set; }
public string keyFromDate { get; set; }
public string keyTillDate { get; set; }
}
public class CustomReport
{
public List<keyPairTextC> GetReportNameList()
{
CustomReport rpt = new CustomReport();
List<keyPairTextC> getReportName = new List<keyPairTextC>();
getReportName.Add(new keyPairTextC
{
keyID = false,
keyN = "Report2",
keyE = "R",
keyFromDate = "NA",
keyTillDate = "NA",
});
return getReportName;
}
public static string getKeyEmp(string strPropertyValue)
{
try
{
List<string> newList1 = new List<string>();
newList1 = getKeyValue(strPropertyValue).Select(C => C.keyE).ToList();
strPropertyValue = newList1[0].ToString();
}
catch (Exception ex)
{
strPropertyValue = "";
}
return strPropertyValue;
}
public static List<keyPairTextC> getKeyValue(string strPropertyValue)
{
List<keyPairTextC> newList = new List<keyPairTextC>();
CustomReport crm = new CustomReport();
newList = crm.GetReportNameList();
newList = newList.Where(c => c.keyN.Contains(strPropertyValue)).ToList();
return newList;
}
}
}
und ich möchte jetzt diese Klasse Methode getReportNameList verwenden, um diesen Bericht in Fall zu binden ich diese dLL oder Referenz dieser Bibliothek bin hinzufügen.
Also meiner aspx Form i unten Code haben ...
var className = "CustomReports";
var assemblyName = "CustomeReports, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
if (a.FullName == assemblyName)
{
assembly = a;
break;
}
}
if (assembly != null)
{
ViewState["AssemblyInfo"] = assembly;
hdnDLLValue.Value = "1";
string strReportName = "Custom Reports";
object result = null;
result = returnDLLObject("GetReportNameList");
}
i haben Rückkehr unter Methode Objekt in dll
public object returnDLLObject(string MethodName)
{
string className = "CustomeReports.CustomReports";
object result = null;
object classInstance = null;
if (assembly == null)
assembly=(Assembly)ViewState["AssemblyInfo"];
if (assembly != null)
{
try
{
Type _type_2 = assembly.GetType(className);
var methodInfo = _type_2.GetMethod(MethodName);
ParameterInfo[] parameters = methodInfo.GetParameters();
classInstance = Activator.CreateInstance(_type_2, null);
if (parameters.Length == 0)
{
result = methodInfo.Invoke(classInstance, null);
}
else
{
object[] parametersArray = new object[] { ViewState["nodevalue"].ToStringIC() };
result = methodInfo.Invoke(classInstance, parametersArray);
}
}
catch (Exception ex)
{
result=null;
}
}
return result;
}
so jetzt bin ich nicht in der Lage, diesen Bericht Objekt in die Liste zu binden Klasse eingeben und auch keinen Eigenschaftswert von dieser Klassenbibliothek abrufen können.