我可以使用单个WCF方法从多个类返回一个类吗?

时间:2015-07-31 12:56:33

标签: c# wcf contract

我在c#

上有这个Model类
public class Enumerator
{
int ID {get;set;}
string Description {get;set;}
}

我还有近20个类实现了将它们转换为Enumerator类的方法。

我的问题很简单:有没有办法在WCF服务上编写单个方法让客户端选择要枚举的类?返回的类型始终是Enumerator类。或者我是否必须编写20份操作合同,每个课程一份?这似乎不合逻辑。

此数据主要用于填写客户端的ComboBox。

1 个答案:

答案 0 :(得分:2)

如果我以正确的方式理解你想要在WCF中执行一个操作,它将任何实现某些IEnumerate(例如)的类型转换为Enumerate对象。如果这是真的,这里是代码

[DataContract]
[KnownType(typeof(Enumerate1))]
[KnownType(typeof(Enumerate2))]
[KnownType(typeof(EnumerateN))]
// up yo 20
public interface IEnumerate 
{
    [DataMember]
    string Description{ get; set; }
    [DataMember]
    int ID {get; set;}
    //  whatever you need 
}
[ServiceContract]
public interface IService
{
    [OperationContract]
    Enumerator GetEnumerator(IEnumerate obj);
}
public Service: IService
{
      Enumerator GetEnumerator(IEnumerate obj)
      {
         // convert
      }
}

希望能帮到你