:また
[DataContract]
class ExampleClass
{
public ExampleClass()
{
method = "Example Constant";
}
[DataMember(Name = "method")]
private string method;
は、プロパティを使用することができますJSON出力のconst
は、private
としてアクセスできません。しかし、const
をシリアライズすることは意味を持ちません。constは静的メンバーであり、特定のインスタンスではなくクラス自体に属しています。そのため、シリアライザはそのインスタンスに設定することはできません。契約シリアライザに精通
[DataContract]
class ExampleClass
{
private const string method = "Example Constant";
//Properties
[DataMember(Name = "method")]
public string Method { get; set; }
public ExampleClass(this.Method = method; }
}
PS: - 私ではないが、これは、XML-シリアライザとどうなるのかです:
は、あなたがプロパティであなたの定数を包むことがこれを言いました。おそらく契約書を持っている人は、取得専用のプロパティを持つこともできるので、余分なコンストラクタは必要ありませんが、これについてはわかりません。
プライベートではなく定数をパブリックにすると、それでも失敗しますか?しかしもう一つの問題は、定数の値 - これは定数ISとは関係がありません - イニシャライザのどこにでも設定できないということかもしれません。 –
私は本当にあなたがそれをすることができるとは思わない。 1つは、それをシリアル化している可能性がありますが、それを逆シリアル化することは不可能です。 [DTO](https://en.wikipedia.org/wiki/Data_transfer_object)には、ゲッタとセッタが含まれている必要があります。 'const'にはセッターがありません。 – Michael
@EdPlunkettはい、パブリックであっても定数をシリアル化しません。 "const"を削除すると、シリアル化されます。さらに、非定数のプライベートメンバーに対してもシリアル化が機能します。 – Taru