我有以下简单的接口:试验接口WCF主机上失败
public interface IInitialisableWcfService
{
void Initialise();
}
我敢放置,就会向被用作像这样一个WCF服务类:
public class LocalResourceManager : ILocalResourceManager, IInitialisableWcfService
ILocalResourceManager是用于为wcf端点设置绑定配置的接口。
里面,我们用于在飞行托管WCF服务的另一个类,我有以下的代码里面测试IInitialisableWcfService接口:
private void Create(Type serviceType)
{
try
{
ServiceHost host = null;
if (serviceType == typeof(IInitialisableWcfService))
{
// create object to initialize.
}
else
{
// do something else
}
catch (ThreadAbortException)
{
throw;
}
catch (Exception ex)
{
//log error
}
}
但失败时,它在真实传递给匹配LocalResourceManager经理服务或者实际上实现IInitialisableWcfService的任何其他服务。我也试过这个
if(serviceType is IInitialisableWcfService)
但是这也行不通。
我不确定这里出现了什么问题。三种可能性:
1)检查和接口的语法是错误的。我觉得这不太可能。
2)由于WCF端点与ILocalResourceManager界面注册,该对象不超过WCF
3)围绕一个类型传递,而不是实际的类暴露其IInitialisableWcfService意味着你不能检查接口
或者可能以上都不是。援助非常感谢。
干杯, 马特
你可以在'Create()'中设置一个断点并检查'serviceType'的值吗?我认为这将是'ILocalResourceManager',它与'IInitialisableWcfService'没有任何关系。 – dlev
抱歉密集,但我不确定我想要查看哪些接口可用的值。我可以设置断点并检查serviceType对象,但它有很多属性,其中没有一个看起来完全有用。 “DeclaringType”为空。 –
只是想知道'FullName'属性是什么。很可能你只会看到实际上作为服务公开的界面。 – dlev