यहाँ यहाँ मेरी मॉड्यूलWCF का उपयोग कर Ninject निपटान requestscope में ट्रिगर नहीं कर
internal class WebServiceConfiguration : NinjectModule
{
public override void Load()
{
Bind<IWebService>().To<WebService>().InRequestScope();
}
}
है Global.asax
public class Global : NinjectHttpApplication
{
protected override IKernel CreateKernel()
{
return new StandardKernel(new WebServiceConfiguration());
}
}
मैं भी InScope की कोशिश की (ग => OperationContext.Current)
हैIWebService
[ServiceBehavior(InstanceContextMode = InstanceContextModeDefinition.Mode)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WebService : IWebService
{
private readonly ISomeService _someService;
public WebService(ISomeService someService)
{
_someService = someService;
}
public void Dispose()
{
_someService.Dispose();
}
012 में IDISposable के साथ मेरी सेवा यहां दी गई है
यहाँ सेवा मार्कअप
<%@ ServiceHost Language="C#" Debug="true" Factory="Ninject.Extensions.Wcf.NinjectDataServiceHostFactory" Service="WCFTest.Services.WebService" CodeBehind="WebService.svc.cs" %>
निर्भरता काम करता है के इंजेक्शन में ServiceHostFactory है। मेरी एकमात्र चिंता यह है कि जब ग्राहक सेवा कॉल बंद कर देता है तो निपटान विधि को ट्रिगर नहीं किया जा रहा है।
मैंने फैक्टरी = "Ninject.Extensions.Wcf.NinjectDataServiceHostFactory" को हटाने का प्रयास किया है, यह जांचने के लिए कि डिप्लोस कहलाएगा, और यह कॉल किया गया लेकिन निश्चित रूप से मेरे पास ऑटो इंजेक्शन नहीं होगा। तो कुछ ऐसा हो सकता है जो मैं सेटअप में गलत कर रहा हूं? या निदान पर एक बग है जिसे निपटान नहीं किया जा रहा है?
नोट: मैं निंजा wcf एक्सटेंशन में नमूना सेटअप लेता हूं और बस कुछ DI जोड़ता हूं।
आपकी सहायता की सराहना की जाएगी।
Btw: मैं Ninject 3.0.0.15, Ninject.Extensions.Wcf 3.0.0.5, Ninject.Web.Common 3.0.0.7
हाय Remo उपयोग कर रहा हूँ, धन्यवाद। –
रेमो, क्या आप इसे थोड़ा सा समझा सकते हैं कि यह समस्या कैसे हल करता है? धन्यवाद – Hari
डब्ल्यूसीएफ एक वेब सेवा उदाहरण का अनुरोध करता है IWebService नहीं –