2011-12-06 19 views
2

私はVS2010 .net 4.0とRestサービステンプレートを使用してWCF Rest Serviceを構築しています。私はspring.net - IoCを紹介したいと思いますが、InstanceContextMode.Singleが設定されているときにスプリングを初期化することができません。他のすべての設定では、IInstanceProviderインターフェイスを使用してカスタム動作を導入できます。spring.netとWCF Rest Service

私の質問は:

私は春に初期化取得することができます他の方法はありますか?

+0

は30.2:http://springframework.net/doc-latest/reference/html/wcf.html MSDNでノートをお読みください:もしサービスのInstanceContextMode Singleである場合、システムはGetInstanceまたはReleaseInstanceメソッドを呼び出さない。 – Andreas

+0

お返事ありがとうございます、Andreas、既にそれを認識しています.. すべてのInstanceContextMode(s)でSpringが動作する別の方法があるのでしょうか? カスタムServiceHostFactory(global.asaxのWebServiceHostFactoryを置き換えます)を作成し、WCF restサービスのスプリングプロキシタイプを提供することによってCreateServiceHostをオーバーライドします。 – lihnid

+0

あなたはSpring.ServiceModel.Activation.WebServiceHostFactoryを探しています。 https://github.com/SpringSource/spring-net/blob/master/src/Spring/Spring.Services/ServiceModel/Activation/WebServiceHostFactory.cs – Andreas

答えて

0

私はちょうどあなたの唯一の問題は、参照の名前である場合は、あなた自身を作成し​​、参照パラメータを修正、またはあなたは、いくつかのエイリアスを設定した辞書を追加することができ、メイン応答

にコメントを見て申し訳ありませんxmlの設定を行い、それに対してルックアップを行います。


私が知る限り、InstanceContextModeがsingleの場合はSpringを使用できません。 WCFで「ネイティブ」統合することは、最も自然 なアプローチであるように見えるん

もののためには許容回避策があるかどうかを確認 にさらに調査する必要があります一つは「gotya」があります:ドキュメントから へのこのアプローチは実行可能です。問題は、 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]を使用するなど、サービスが シングルトンに設定されている場合、 のIInstanceProviderの呼び出しが短絡されるという問題があります。

ドキュメントこのことを示唆している:非常に魅力的ではありません

回避策の一つは、PerCallのインスタンス化モードを使用しますが、trueにSpring構成で シングルトン属性を設定することで、この方法を は、同じインスタンスが常に返されます。ここ

さらに詳しい情報:http://www.springframework.net/docs/1.2.0-M1/reference/html/wcf.html

関連する問題