C# 我可以使用单个WCF方法从多个类返回一个类吗?
我在c上有一个模型课# 我还有近20个类,它们实现了将它们转换为枚举器类的方法 我的问题很简单:有没有办法在WCF服务上编写一个方法,让客户端选择要枚举的类?返回的类型始终是和枚举器类。还是我必须写20份作业合同,每班一份?这似乎不太合乎逻辑C# 我可以使用单个WCF方法从多个类返回一个类吗?,c#,wcf,contract,C#,Wcf,Contract,我在c上有一个模型课# 我还有近20个类,它们实现了将它们转换为枚举器类的方法 我的问题很简单:有没有办法在WCF服务上编写一个方法,让客户端选择要枚举的类?返回的类型始终是和枚举器类。还是我必须写20份作业合同,每班一份?这似乎不太合乎逻辑 这些数据主要用于填充客户端的组合框。如果我理解正确,您希望在WCF中执行一个操作,将实现某些IEnumerate(例如)的任何类型转换为枚举对象。如果是真的,这里有一个代码 [DataContract] [KnownType(typeof(Enumerat
这些数据主要用于填充客户端的组合框。如果我理解正确,您希望在WCF中执行一个操作,将实现某些IEnumerate(例如)的任何类型转换为枚举对象。如果是真的,这里有一个代码
[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
}
希望这有助于您使用
WebOperationContext.Current.CreateTextResponse
返回System.ServiceModel.Channels.Message
(意味着您将手动进行序列化)谢谢@EZI。我不确定我是否明白你的意思。如果我知道返回的类型,为什么需要序列化manual?你能详细解释一下吗?埃里克帕。您将返回消息
而不是真正的类。(顺便说一句:您也可以返回流。将所有返回值(对象的序列化形式)填入MemoryStream并返回,)
[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
}
}