IEnumerable <t>作为WCF方法的返回类型</t>

时间:2014-02-25 20:32:51

标签: c# .net wcf interface

如果我定义一个Test对象,使用string和Datetime属性并使用它来返回WCF中的IEnumerable(T)集合

[OperationContract]
IEnumerable<Test> GetTestNotes();

当从客户端调用服务时,我看到它正在将IEnumerable转换为Test []:

public Test[] GetTestNotes() {
    return base.Channel.GetTestNotes();
} 

我能够获得数据。

问题是:使用IEnumerable(T)接口而不是具体的List(T)有多可靠?

我使用这些WCF服务的客户端不仅在.NET中,而且在JAVA中。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Visual Studio生成的服务引用,则可以选择用于集合的类型。右键单击Service References下的服务,然后选择 Configure Service Reference ... 。您应该看到以下选项:

Configure Service Reference

但是,这仍然不允许您选择IEnumerable<T>。如果您想要更严格地控​​制客户端界面的外观,最好的办法是在单独的程序集中定义契约,然后在客户端和服务器上引用这些程序集。