无法在WCF服务中公开我的接口手册类
本文关键字:接口 我的 WCF 服务 | 更新日期: 2023-09-27 17:50:51
我已经开发了一个WCF服务,下面是一个示例TestCode来清楚地了解这个问题:
IService.cs:
[OperationContract]
List<TestClass> Display(string companyCode, string employeeId);
在这个接口中,我定义了TestClass:
public class TestClass
{
public System.Guid Id {get; set;}
public string Name { get; set; }
public System.Nullable<System.DateTime> DateOfBirthOn { get; set; }
public string CountryName { get; set; }
public string LastName { get; set; }
}
Service1.svc.cs:
public List<TestClass> Display(string companyCode, string employeeId)
{
try
{
TestClass oTestClass = null;
oTestClass = new TestClass(companyCode);
List<TestClass> oITestClass = oTestClass.GetDetails("ABC", someid) as List<TestClass>
if (oITestClass != null && oITestClass .Count > 0)
{
return oITestClass ;
}
else
{
return null;
//logger.Debug("No Record Found");
}
}
catch (Exception ex)
{
return null;
}
finally
{
// Nothing To Do
}
}
问题是我得到列表null
在以下行
List<TestClass> oITestClass = oTestClass.GetDetails("ABC", someid)
我做错了什么?
GetDetails方法返回TestClass的接口所以我必须在TestClass
你做错的是你没有分配oTestClass
变量:
TestClass oTestClass = null; // <- This _is_ null
List<TestClass> oITestClass = oTestClass.GetDetails("ABC", someid)
你怎么能指望它不是null
呢?
这是基本的,基本的,基本的语言知识。如果你不知道这些事情,我建议你远离WCF,做一些更基本的事情,直到你学会了这门语言。
您可以从阅读NullReferenceException
开始:)
将GetDetails的返回类型更改为IEnumerable<>而不是List<>,它应该可以工作。
TestClass tc = new TestClass();
IEnumerable<ITestClass> bList = tc.GetDetails();
IEnumerable<TestClass> dlist = bList as IEnumerable<TestClass>;
请参考http://msdn.microsoft.com/en-us/library/dd799517(v=vs.110).aspx
顺便问一下,你用的是。net的哪个版本?