【发布时间】:2013-01-29 17:26:21
【问题描述】:
对 WCF 来说是全新的。真的可以使用一些帮助。
我有一个包含 (100) 个对象的列表,其中包含 4 个数据成员。 DM1、DM2、DM3、DM4
我有一堆数据合同
DC1
List<DC2>
DC2
<DM1 Value=n> (n could be any number below 5, so there could be up to 5 DC2 inside the List in DC1)
List<DC3>
DC3
<DM2 value=n> (n could be any number below 10, so up to 10 DC3 inside the List in DC2)
List<DC4>
DC4
<DM3>
<DM4>
需要遍历原始对象列表,并根据原始对象列表的数据成员中的不同值,使用各种嵌套数据合约创建一个数据合约 (DC1)。
例如:
<DC1>
<DC2>
<DM1 value = "a">
<DC3>
<DM2 value = 1>
<DC4>
<DM3>
<DM4>
<DM2 value = 2>
<DC4>
<DM3>
<DM4>
<DC4>
<DM3>
<DM4>
</D3>
</DC2>
<DC2>
<DM1 value = "b">
<DC3>
<DM2 value = 1>
<DC4>
<DM3>
<DM4>
<DM2 value = 2>
<DC4>
<DM3>
<DM4>
<DC4>
<DM3>
<DM4>
</D3>
</DC2>
<DC1>
最好的方法是什么?
谢谢!
这是 DataContracts 以及使用 DC1 传递信息的服务合同:
[DataContract]
public class DC1
{
[DataMember]
public string string { get; set; }
[DataMember]
public List<DC2> LDC2{ get; set; }
}
[数据合约] 公共课 DC2 { [数据成员] 公共字符串类型{获取;放; }
[DataMember]
public List<DC3> DC3s{ get; set; }
[数据合约] 公共课 DC3 { [数据成员] 公共十进制数 { 得到;放; }
[DataMember]
public List<DC4> DC4s{ get; set; }
[数据合约] 公共课 DC4 { [数据成员] 公共 int num2{ 得到;放; }
[DataMember]
public decimal Val{get; set;}
服务合同: [ServiceContract(Namespace = Constants.Namespace)] 公共类服务 {
[OperationContract]
DC1 GetMethod(int num);
数据集:
是以下对象的 LIST:
[Serializable]
public class Data
{
public string Type { get; set; }
public double Num { get; set; }
public double Num2{ get; set; }
public decimal Val{ get; set; }
}
此列表中可以包含 100 个(或更多)这些对象。 最多5种,Num最多10种,Num2最多5种。
感谢您的回复,并希望澄清!
【问题讨论】:
-
你能解释一下你想要完成的事情吗?甚至可能是您当前类的一些代码,以及您如何使用 [DataContract] 和 [DataMember] 属性装饰它们。因为如果您有一个将 DC1 类定义为输入或输出的 [OperationContract] 方法,那么您所问的似乎 WCF 已经隐式执行了。
-
感谢您的回复。为了清楚起见,用更多代码编辑了问题!
标签: wcf