两次调用后COM对象变为null

时间:2017-01-11 23:21:13

标签: c# com

我在我的c#项目中加载COM DLL。它通常可以工作,但在过去几周中有3次,COM对象“变为”无效。

奇怪的是,对象在“变为”空之前的两行中使用。

var comType = Type.GetTypeFromProgID("MyDllLibrary");

var abc = Activator.CreateInstance(comType);

var first = "first";
var second = "second";

//comType is not null and works fine
comType.InvokeMember("First", System.Reflection.BindingFlags.SetProperty, null, abc, new object[] { first });
comType.InvokeMember("Second", System.Reflection.BindingFlags.SetProperty, null, abc, new object[] { second });

string data = "data";

//comType becomes null here...
//ERROR: Object reference not set to an instance of an object. 
var workedData = comType.InvokeMember("DoWork", System.Reflection.BindingFlags.InvokeMethod, null, abc, new object[] { data }); 

这似乎是随机发生的,很少发生。我无法重现它。 知道为什么会发生这种情况以及如何预防吗?

0 个答案:

没有答案