私はNinject 2.2.1.4とNinject.Extensions.Wcf 2.2.0.4を使用しています。私のサービスは、以下の属性で飾られているシングルトンサービスでNinject WCF拡張機能を使用するにはどうすればよいですか?
:上記の属性を使用して
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
、私はエラーが表示されます。
"The service type provided could not be loaded as a service because it does not have a default (parameter-less) constructor. To fix the problem, add a default constructor to the type, or pass an instance of the type to the host."
私は期待通りNinjectの動作属性を削除した場合。
いくつかの調査をした後、サービスがシングルトンとしてマークされているため、ServiceHostによってパラメータなしのコンストラクタ、つまりエラーメッセージが自動的に作成されることを理解しています。この問題を解決するには、サービスオブジェクトを自分で作成し、ninjectを使用して解決してから、シングルトンオブジェクトをServiceHostに渡して使用する必要があります。私はそれをどうやって行うのか分からない。
私の考えは、オーバーロードコンストラクタ使用して、サービスオブジェクトの私のインスタンスにNinjectServiceHostをバインドすることだったので、私はWCF拡張ソースを見て、私はNinjectServiceHostはのServiceHostから継承することを参照してください。私はありません
public NinjectServiceHost(object singletonInstance)
: base(singletonInstance)
{
}
をそれが正しいかどうか、それが正しいかどうか、どうやってどこにどこに正しくバインドするかによって、ServiceHostは私のインスタンスに送られます。
提案がありますか?ありがとう。
ありがとう、私はそれを調べます。それがベータ版から出てくると思っていますか? – Mike
いいえ、私は日付を指定していません。次のリリースでどれくらいの作業が残っているかはわかりますが、Ninjectに費やす時間については全く分かりません。 しかし、WCFに関しては何も変更すべきではありません。 WCFの他のアセンブリに追加されるのは、InRequestScopeのXMLおよび表記拡張のサポートのみです。 –