我有一个为内部客户端托管的WCF服务 - 我们可以控制所有客户端。 因此,我们将使用数据契约库以消除代理生成的需要。 我想使用一些只读属性,并且有一些没有默认构造函数的数据契约。
感谢您的帮助...
我有一个为内部客户端托管的WCF服务 - 我们可以控制所有客户端。 因此,我们将使用数据契约库以消除代理生成的需要。 我想使用一些只读属性,并且有一些没有默认构造函数的数据契约。
感谢您的帮助...
示例:
using System;
using System.IO;
using System.Runtime.Serialization;
[DataContract]
class Foo
{
[DataMember(Name="Bar")]
private string bar;
public string Bar { get { return bar; } }
public Foo(string bar) { this.bar = bar; }
}
static class Program
{
static void Main()
{
DataContractSerializer dcs = new DataContractSerializer(typeof(Foo));
MemoryStream ms = new MemoryStream();
Foo orig = new Foo("abc");
dcs.WriteObject(ms, orig);
ms.Position = 0;
Foo clone = (Foo)dcs.ReadObject(ms);
Console.WriteLine(clone.Bar);
}
}
[DataMember]
,否则它什么也不会做;但那是只读属性,所以我预计它要么会忽略你,要么会抛出异常。如果你有getter和setter,它将执行你的代码要求它执行的任何操作。 - Marc Gravell