2011-08-24 133 views
1

我有一个WCF服务方法使用自定义数据类型的问题,是我的示例代码WCF服务合同

[ServiceContract()] 
public class SampleServise : ISampleServise 
{ 
    void object GetSomething(ICustomData objectData) 
    { 
     // Do Something 
    } 
} 

我应ICustomData类的接口做什么?

由于 阿夫欣

回答

2

WCF是基于消息传递,以及消息传递是使用XML模式(XSD)建模。因此,WCF可以使用任何可以用XML模式表达的内容。

这也意味着:不支持接口。您需要在WCF服务方法中为参数使用实际的具体类型。

在你的情况,创建一个具体的类,实现ICustomData,然后使用该类作为参数类型。

对于一个很好的参考,阅读MSDN Designing Service Contracts这对于参数规定:

参数和返回值

每个操作都有一个返回值和参数,即使这些 无效。但是,与本地方法不同,您可以将参考 从一个对象传递到另一个对象,服务操作不会将 对对象的引用传递给对象。相反,他们传递对象的副本。

这是因为在一个参数中使用或返回 值必须是可序列每种类型是显著;也就是说,必须可以将该类型的对象转换为字节流,并从字节流 转换为对象。