WCF服务合同

时间:2011-08-24 18:13:10

标签: wcf wcf-data-services

我在WCF服务方法中使用自定义数据类型时遇到问题,下面是我的示例代码

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

我该怎么处理ICustomData类接口?

由于 阿夫欣

1 个答案:

答案 0 :(得分:2)

WCF基于消息传递,并且使用XML架构(XSD)对消息传递进行建模。因此,可以在WCF中使用XML模式中可以表达的任何内容。

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

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

为了获得良好的参考,请阅读MSDN Designing Service Contracts,其中列出了参数:

  

参数和返回值

     

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

     

这很重要,因为参数或返回中使用的每种类型   value必须是可序列化的; 也就是说,必须可以转换一个   该类型的对象分为字节流和字节流   进入一个物体。