0

クラスがあります

public class Broker
{
    public Broker(string[] hosts, string endPoint, string port, Type remoteType)
    {
    }
}

Unity XML構成を使用して構成したいのですが、C#のコードを使用して、すでに次のように構成できます。ここで、「container」はUnityコンテナーです。

            container.Configure<InjectedMembers>()
                .ConfigureInjectionFor<Broker>("myBroker",
                                                           new InjectionConstructor(hosts, endPoint, port, new InjectionParameter(typeof(IMyBrokeredObject))));

通常のユニティコールを使用して問題なく解決します

container.Resolve( "myBroker");

しかし、現在、私のxmlは最終パラメーターIMyBrokeredObjectを解決できません。上記のコードのように、Unityが単純に型を挿入することで型を解決しようとしているため、解決例外が発生します。

何か案は?

4

2 に答える 2

1

構成ファイルでタイプを定義しましたか:

<unity>
<typeAliases>
  <typeAlias alias="IMyBrokeredObject" type="MyAssembly.IMyBrokeredObject, MyAssembly" />
</typeAliases>
<containers>
      <container>
        <types>
          <!-- Views -->
          <type type="IMyBrokeredObject" mapTo="MyAssembly.MyBrokeredObjectImplementation, MyAssembly" />
于 2008-12-29T17:55:01.800 に答える
0

しかし、私の問題は、IMyBrokeredObject に使用できる実装がないことです。これのバックグラウンドで実際に起こっていることは、ブローカーがインターフェイスを指定してリモート オブジェクトを提供することです。実際の実装は別の場所にあります。

コードでは、「InjectionParameter」を指定することでコンテナーにブローカーを提供させることができますが、xml 構成でこれを行う方法を見つけることができません。

コンテナにインターフェイスのインスタンスを与えたくないが、実際にはインターフェイスをそのまま渡すため、注意が必要です。「InjectionParameter」は値のストアであり、コンテナによってオブジェクトが作成されるときに格納された値が渡されます。そのまま。私が探しているのは、InjectionParameter を作成してそれに値を与えるために必要な構成 xml です。

于 2009-01-02T15:43:02.020 に答える