Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 在构建时添加DataMember和DataContract_Wcf_Silverlight - Fatal编程技术网

Wcf 在构建时添加DataMember和DataContract

Wcf 在构建时添加DataMember和DataContract,wcf,silverlight,Wcf,Silverlight,我们正在开发带有Wcf业务应用程序的Silverlight。我们正在使用Wcf DataContract和DataMember 我们在所有字段中设置DataMember,在所有类中设置DataContract(IsReference=true)。我们是否可以将编译器设置为在构建时自动添加DataMember和DataContract,以便跳过添加DataMember和DataContract?:)。 换句话说,我们可以设置一个规则,在构建时在所有类上添加DataContract,并在所有字段上添

我们正在开发带有Wcf业务应用程序的Silverlight。我们正在使用Wcf DataContract和DataMember

我们在所有字段中设置DataMember,在所有类中设置DataContract(IsReference=true)。我们是否可以将编译器设置为在构建时自动添加DataMember和DataContract,以便跳过添加DataMember和DataContract?:)。
换句话说,我们可以设置一个规则,在构建时在所有类上添加DataContract,并在所有字段上添加DataMember吗?但我们不会在代码中使用任何更改。

如果您使用的是3.5SP1,则不必赋予任何属性-所有公共成员都将在不可序列化且未标记为DataContract/DataMember的类型上序列化(如果已标记,则禁用自动序列化)。引用保存行为可以通过config+自定义序列化程序设置来设置,如。

如果我没有使用Silverlight,我会这样做的,Silverlight不支持[Serializeable],因此我被迫使用DataContract/DataMember,但您是对的,我正是想要这种行为。这种行为与Serializable无关,它在Silverlight 3和4中的工作方式与在3.5SP1中的工作方式完全相同。明天我将测试这种方法:)“可以通过像这样的配置+自定义序列化程序设置来设置引用保留行为。”。我发现这在Silverlight 5中不起作用。由于DataContractSerializerOperationBehavior类在Silverlight中是内部的,因此无法重写CreateSerializer方法来调用preserveObjectReferences=true的构造函数。相反,我们根据需要手动添加[DataContract(IsReference=true)]和[DataMember]属性。我想像PostSharp这样的东西可能是处理这个问题的唯一其他方法。