C# 程序集createinstance和crystal报表出现问题
我加载一个程序集C# 程序集createinstance和crystal报表出现问题,c#,.net,crystal-reports,crystal-reports-2008,crystal-reports-xi,C#,.net,Crystal Reports,Crystal Reports 2008,Crystal Reports Xi,我加载一个程序集 private System.Reflection.Assembly; object myData; myAssembly = System.Reflection.Assembly.LoadFile("C:\\CrystalDecisions.CrystalReports.Engine.dll"); 然后我创建一个实例 myData=myAssembly.CreateInstance("CrystalDecisions.CrystalReports.Engine.Repor
private System.Reflection.Assembly;
object myData;
myAssembly = System.Reflection.Assembly.LoadFile("C:\\CrystalDecisions.CrystalReports.Engine.dll");
然后我创建一个实例
myData=myAssembly.CreateInstance("CrystalDecisions.CrystalReports.Engine.ReportDocument", true);
此myData始终返回null,您知道为什么在myAssembly具有程序集信息及其公钥令牌的情况下返回null吗?请尝试以下操作
// dynamically load assembly from file Test.dll
Assembly myData = Assembly.LoadFile(@"C:\CrystalDecisions.CrystalReports.Engine.dll");
// get type of class Calculator from just loaded assembly
Type myData = myData.GetType("CrystalDecisions.CrystalReports")
// create instance of class Calculator
object myDataInstance = Activator.CreateInstance(myData);
我很乐意发布一个您可以尝试的示例。。问题您希望从运行应用程序的同一位置加载.dll吗?.dll将从文件路径加载到assmebly using load file,然后使用指定类型的CreateInstance,然后使用GetMethod of reflection,但是CreateInstance始终返回null。请更改下面的示例以适合您尝试加载的DLL。。注意我是如何得到这个类型的。。还要查看Activator.CreateInstance。。我将在下面的一秒钟内发布如何做到这一点。我如何获取ReportDocument?ReportDocument是您试图获取的内容的属性吗。。?如果是这样,请将CrystalDecisions更改为ReportDocument.CrystalReportsType myData返回我null,其中作为第一个for loadfile上的程序集myData返回我程序集信息。System.Reflection.RuntimeAssembly]:{CrystalDecisions.CrystalReports.Engine,Version=11.5.3300.0,Culture=neutral,PublicKeyToken=692fbea5521e1304 GlobalAsemblycache:false EntryPoint:null有什么想法吗?在我们继续下一个问题之前,你能先试试这个例子吗,除非我的建议已经对你起作用了..谢谢,所以它现在正在加载,而不是在beg中局。。?