私はCOMコンポーネントを持っていますが、TLBIMPツールを使ってinterop dllを作成しました。デフォルトインターフェイスにアクセスすると、InvalidCastExceptionで失敗することがあります(System .__ ComObject ' )C#でCOMコンポーネントを使用するとInvalidCastExceptionが発生する
private void SomeMethod(IMyInterface iObj)
{
**//Following cause error InvalidCastException, not always but Intermittently**
//MyComponent comp = new MyComponentClass();
//comp= iObj as MyComponent
**//The below code works fine.**
IMyInterface comp = new MyComponentClass();
comp = iObj;
}
IDL宣言
coclass MyComponent
{
[default] interface IMyInterface;
};
上記の関数でコメントしたコードがエラーで失敗した理由を任意のアイデア? MyComponentのcomp = new MyComponentClass()行がデフォルトインタフェースを返すはずです。この場合、LHS変数の型がinterfaceであるべきではありません。