この3つをうまく連携させることができないようです。
1 つの方法で非常に単純なサービスに絞り込みました。
[System.ServiceModel.ServiceContract]
public interface Icontract
{
[System.ServiceModel.OperationContract]
void Ping();
}
public class contract : Icontract
{
public void Ping()
{ }
}
次のような工場があります。
public class ServiceFactory
{
private readonly IKernel _kernel;
public ServiceFactory(IKernel kernel)
{
_kernel = kernel;
}
public NinjectServiceHost<T> GetService<T>()
{
return _kernel.Get<NinjectServiceHost<T>>();
}
}
このようにサービスを作成すると...
_tmp = new ServiceHost(typeof(ConsoleApplication1.contract));
_tmp.Open();
...ディスカバリーは問題なく機能します。しかし、工場をそのように使用すると...
_tmp = _factory.GetService<ConsoleApplication1.contract>();
_tmp.Open();
...サービスはもう検出できません。サービスに関する他のすべては期待どおりに機能します。
ディスカバリーがこのように機能することを喜んだ人はいますか、それとも私が間違っていることはありますか?