1

C# 内のインターフェイスの具体的な実装をすべて検出するコードを作成しようとしています。しかし、私が直面している問題が c# に限定されているとは思えず、一般的なおっと質問です。

実行時に検出を行いたいので、将来インターフェースの実装を拡張することができます。

これを達成するために、どのようなオプション/アプローチを利用できますか?

例えば

public interface IAnimal{
 void MakeNoise();
}
public class Dog : IAnimal{
  public void MakeNoise()
  {
    Console.WriteLine("WOOF");
  }
}
public class Cat : IAnimal{
  public void MakeNoise()
  {
    Console.WriteLine("Meow");
  }
}
public class AnimalInstanceController{
  /*Im trying to populate this with all classes that implement IAnimal 
  */   
  public IEnumerable<IAnimal> {get;set;}
}

ありがとう

ニコラス

4

4 に答える 4

0

リフレクションを使用してこれを行う方法を確認できました-アセンブリからそのクラスに移動し、それぞれに問い合わせて、IWhateverにキャストできるかどうかを確認します-しかし、もちろん、c#固有ではありませんが、このアプローチは確かに.net固有です。

何か役に立ちますか?

于 2013-05-14T14:55:34.700 に答える