6

Unity.WCFを使用して、WCFサービスの依存関係を挿入しています。サービスをに設定すると問題が発生しInstanceContextMode.Singleます。

Googleで、に設定されている場合は呼び出されないことがわかりましInstanceContextModeた。これに対する回避策もありますが、これは明らかによく知られている問題であるため、Unity.WCFにこれに対する組み込みのサポートがあるかどうか疑問に思いました。SingleInstanceProvider

ここで情報を見つけました:シングルトンサービスの有効化InstanceProvider

4

1 に答える 1

7

あなたが尋ねたのと同じ質問に対するPaulHilesのコメントを引用します。

を使用InstanceContextMode.Singleするとサービスの拡張が非常に悪くなるため、ほとんどの場合、特にAppFabricの自動起動を許可するためだけに使用している場合は避けるのが最善です。ServiceBehavior属性を安全に削除して、別の方法で行うことができます。

Unity.WCFを使用すると、Unity.WCFNuGetパッケージを追加するときに作成されるクラスのConfigureContainerメソッドに初期化コードを追加できます。WcfServiceFactoryこれは、サービスの存続期間中に1回だけ実行されます。

ところで、Unityコンテナをサービスに渡してはいけません。サービスが使用するコンポーネント(リポジトリ、ヘルパーなど)をコンストラクターに追加し、ConfigureContainerメソッドを使用してUnityに登録します。サービスがインスタンス化されると、依存関係が自動的に挿入されます。

このMSDNシリーズ記事も役立つ場合があります。

于 2013-03-16T19:05:25.290 に答える