0

ライブラリaでメソッドが呼び出されたときに、ライブラリbでメソッドを起動する必要があります。

たとえば、ライブラリalibrary bのイベントにアタッチすることはどういうわけか可能ですか?testEvent

ライブラリa-ライブラリbを参照できません(循環依存のため)

public event testEvent = null;
pubic class alpha{
   public void main(){//application entry point       
   }
}

ライブラリb-への参照がありますlibrary a

public class beta{
  public void hello(){
  }
}

library cそれができない場合は、への参照がありlibrary b、によって参照される3番目のライブラリを作成する必要があると思いますlibrary a

4

1 に答える 1

1

最も簡単な解決策の 1 つは、インターフェイス定義を a に、実装を b に持つことです。次に、a で、リフレクションを使用してインターフェイスのインスタンスへの参照を解決します。

B.dll:

 public class beta : ibeta {
    public void hello() {
    }
 }

A.dll:

 public interface ibeta {
    void hello();
 }

 ..

 public static void Main()
 {
     // resolve type by its fully qualified name
     ibeta b = (ibeta)Activator.CreateInstance( Type.GetType( "beta, B" ) );
     b.hello(); 
 }
于 2012-07-02T18:52:29.363 に答える