我正在使用第三方dll。我在某些命名空间namespace.class
中使用了一个类。
在较新的版本中,该类已移至另一个名称空间,因此现在为newnamespace.newpart.class
。我的代码需要支持两种情况。我该如何解决?
最佳答案
开发第三方dll的后期绑定,并检查它是哪个版本。比您可以在正确的名称空间中创建正确的对象的新实例。
下面是一些示例代码:
//load dll
System.Reflection.Assembly myDllAssembly =
System.Reflection.Assembly.LoadFile("myspeciallibrary.dll");
//create object
Object MyDLLObjectInstance;
//initialize object
if (myDllAssembly.ImageRuntimeVersion == "version2")
{
MyDLLObjectInstance = (Object)myDllAssembly.CreateInstance("MyDLLNamespace.MyDLLObject");
}
else
{
MyDLLObjectInstance = (Object)myDllAssembly.CreateInstance("MyDLLNamespace.NewNameSpace.MyDLLObject");
}