-2
動的に作成されたオブジェクトを、それが拡張された特定のインターフェイスにキャストしたいと思います。作成したオブジェクトをインターフェイスタイプにキャスト
例:
動的にロードされたDLL:
public class Foo: IBar
{
}
実際のプログラム:あなたは型にキャストすることはできませんので、
var obj = code; // load assembly and fetch object
Type type = obj.GetType().GetInterface("IBar");
IBar bar = (type) obj;
明らかにこれは動作しません。他の方法はありますか?
なぜ 'IBARバー=(IBAR)は、obj;'?あなたの制約は何ですか? –
インターフェイスはDLL経由で動的にロードされます。 – Lyze
動的にロードされていてもキャストできます。または、キャストではなく 'as'を使用してください。' IBar bar = obj as Ibar; if(bar!= null)... barで何かを実行する ' –