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 ディレクトリに追加します。
私は何を忘れましたか?