我的服务器代码已经搁置了一段时间,我回去对其进行测试。
我们在一个类中创建一个ServiceHost
,并将端点添加到ServiceHost
。当我们添加一个端点时,我们会看到一个异常:
[找不到ServiceContract属性。]
但是属性在那里,我添加了代码以获取属性并验证它是否在那里。
public static void AddEndPoint ( ServiceHost host, string url, Type implementsType )
{
var binding = CreateBinding( url );
var attrs = implementsType.GetCustomAttributes ( false );
host.AddServiceEndpoint ( implementsType, binding, url );
}
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
string SayHello ( string name );
}
我创建了一个示例 sln ,该示例在所有库都是.net框架库的情况下都能正常工作。
在常规的 sln 中,我们的服务接口位于 .net标准2.0库中,我们的服务位于 .net框架库中,创建服务主机的项目是 .net框架库。我无法弄清楚为什么在attrs数组中查看属性时是否存在该属性,而AddServiceEndPoint找不到它。