我正在使用第三方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");
}

10-04 12:07