senin örneğin sınıfları göz önüne alındığında, sen böyle bir şey arıyor düşünüyorum:
public bool ShouldSerializeSample()
{
return (Sample != null && (Sample.Id != 0 || Sample.name != null));
}
İşte
class Program
{
static void Main(string[] args)
{
List<Container> list = new List<Container>
{
new Container
{
Cname = "Will serialize Sample because it has a name",
Sample = new Sample1 { name = "sample 1" }
},
new Container
{
Cname = "Will serialize Sample because it has a non-zero Id",
Sample = new Sample1 { Id = 2 }
},
new Container
{
Cname = "Will serialize Sample because it has a name and an Id",
Sample = new Sample1 { name = "sample 3", Id = 3 }
},
new Container
{
Cname = "Will not serialize Sample because it has default values",
Sample = new Sample1()
},
new Container
{
Cname = "Will not serialize Sample because it is null",
Sample = null
}
};
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
Console.WriteLine(json);
}
}
public class Sample1
{
public String name { get; set; }
public int Id { get; set; }
}
public class Container
{
public String Cname { get; set; }
public Sample1 Sample { get; set; }
public bool ShouldSerializeSample()
{
return (Sample != null && (Sample.Id != 0 || Sample.name != null));
}
}
çıkışı: Buradabir çalışma demo
[
{
"Cname": "Will serialize Sample because it has a name",
"Sample": {
"name": "sample 1",
"Id": 0
}
},
{
"Cname": "Will serialize Sample because it has a non-zero Id",
"Sample": {
"name": null,
"Id": 2
}
},
{
"Cname": "Will serialize Sample because it has a name and an Id",
"Sample": {
"name": "sample 3",
"Id": 3
}
},
{
"Cname": "Will not serialize Sample because it has default values"
},
{
"Cname": "Will not serialize Sample because it is null"
}
]
Eğer "hayır yeni değerler atanmış" ile ne demek istiyorsunuz? Bir örnek verebilir misiniz? –
Bu, Nesne türü olan özelliğin varsayılan değerlerle kendi özelliklerine sahip olduğu anlamına gelir. – Madhu
Yanıt, 'Sample1' örneğinin ne olduğuna bağlı olacaktır. Örneğin, 'Sample1' bir başvuru türü ve varsayılan değeri "null" ise, 'sample' özelliği 'null' değilse, aksi takdirde false' true' döndürmelisiniz. Eğer 'Sample1' kendi alanları olan bir nesneyse, 'Sample1''in alanlarından herhangi biri 'default' değilse, aksi takdirde' false' '' true' döndürmelisiniz. – William