JSONシリアライザの独自の実装に取り組んでおり、クラスのすべてのシリアライズ可能なフィールドを取得する必要があります。例えばクラス内のフィールドがシリアル化可能かどうかを確認する方法?
、私はこのようなクラスを持っている:
[Serializable]
class TestClass
{
public int i;
public string s;
[NonSerialized]
public string ignore;
}
だから私はignore
をシリアル化する必要はありません。このコードでは、私はすべての直列化可能フィールドを印刷しよう:
foreach (FieldInfo field in typeof(TestClass).GetFields())
{
if (field.FieldType.IsSerializable)
{
Console.WriteLine (field.Name);
}
}
は結局
ignore
が他の人と同様に印刷されます。私は間違って何をしていますか?
あなたの属性は[非シリアル化]にする必要はありませんか? –
@JamesDevはい、それはタイプミスです。しかし、[NonSerialized]を使用しても、正常に動作しません。 – Amir