我创建了一个 ComVisible 类:
[Guid("73a3f91f-baa9-46ab-94b8-e526c22054a4"), ComVisible(true)]
public interface ITest
{
void Foo();
}
[Guid("99f72d92-b302-4fde-89bb-2dac899f5a48"), ComVisible(true)]
public class Class1 : ITest
{
public void Foo() { }
}
并通过注册
regasm ComClassTest.dll /tlb:ComClassTest.tlb
进入注册表。当我尝试在我的 Silverlight 4 浏览器外调用它时,提升的信任应用程序如下所示:
var foo = AutomationFactory.CreateObject("ComClassTest.Class1");
我收到异常“{System.Exception:无法为指定的 ProgID 创建对象实例。”
但是,如果我复制 ComClassTest,我可以在没有异常的情况下调用 AutomationFactory.CreateObject("Word.Application") 并在普通 C# 控制台应用程序中调用 Activator.CreateInstance(Type.GetTypeFromProgID("ComClassTest.Class1")) .dll 进入 bin 目录。
我忘记了什么?