2011-11-09 2 views
0

私は見つかったサンプルをXML設定に変換しようとしています。ユニティ設定のXML版?

これがコードで行う場合は、

IUnityContainer unityContainer = new UnityContainer(); 
unityContainer.RegisterType<IServiceProxy<ITestService>, ServiceProxy<ITestService, TestServiceClient>>(); 

XMLで何をしますか?私はこれを試しているが、何かが欠けている。

<unity> 
    <typeAliases> 
    <typeAlias alias="IServiceProxy" type="WCF.IServiceProxy, WCF" /> 
    <typeAlias alias="ITestService"type="Interfaces.ITestService, Interfaces" /> 
    <typeAlias alias="IServiceProxy[ITestService],ServiceProxy[ITestService,TestServiceClient]]" /> 
    </typeAliases> 
    <containers> 
    <container name="servicesContainer"> 
    <type type="IServiceProxy" mapTo="ServiceProxy" /> 
    <type type="ITestService" mapTo="TestService" /> 
    </container> 
    </containers> 
</unity> 
+0

をおそらくあなたがしていますエラーメッセージや予期しない動作が発生することがあります。詳細を教えてください。また、ユニティのXML設定を使用することは、痛み以外の何ものももたらさないので、それが価値あるものであるかどうかについてはわかりません。私はむしろ流暢な構成によって提供された強いタイピングを持っているでしょう。 –

+0

TestServiceまたはITestServiceで解決を行うと、エラーは発生しません。サービスクライアントを取得できません。 – XeroxDucati

+0

複数の実装(テスト以外)がありますか?そうでない場合は、流暢なコードの構文を使用してください。再構築してテストを実行できます。 XMLは物事を難しく、容易にしません。 – TrueWill

答えて

0

あなたのエイリアスは完全にあなたの例でfubaredです。エイリアスで角括弧構文を使用することはできません.CLR型構文を使用する必要があります。最後のエイリアスでは、大きな長い文字列であるエイリアスを指定するだけですが、そのタイプは決して指定しません。 ServiceProxyエイリアスは決して提供されないので、名前は存在せず、見つからないだけです。

あなたはユニティ2.0を使用していると仮定すると、あなたが適切な<名前空間を追加しました>と<アセンブリが> XML内のノードが自分のアセンブリを指すように、この作業をする必要があります:

<unity> 
    <namespace name="WhateverYourNamespaceIs" /> 
    <assembly name="AndWhateverAssembliesAre" /> 
    <container name="servicesContainer"> 
    <register type="IServiceProxy[ITestService]" mapTo="ServiceProxy[ITestService, TestServiceClient]" /> 
    </container> 
</unity> 
+0

のような魅力 - ありがとう! – XeroxDucati

2

私はUnity 2.0の構文しか知りませんが、これはそうではありません。たとえば、typeノードはregisterで、containersノードはどのバージョンのUnityでもサポートされていません。古い/貧弱な文書を見ている可能性はありますか?

Unity 2.0を使用していることを確認してください。

  1. ServiceProxyまたはTestServiceに定義されたエイリアスはありません。そして、ただ、他の問題のいくつかのあなたのxmlをスキャンUsing Design-Time Configuration

    を読み始めます。

  2. IServiceProxy []別名:それはタイプを
  3. 再帰別名を定義していない
    • ないがサポートされています。

Specifying Types in the Configuration Fileエイリアスの構文をお届けします。

関連する問題