here'dan aşağıdaki koda bakın.
Bu, bir veri sözleşmesinde (nesne modeli, nesne grafiği, etki alanı modeli) wcf'de serileştirme sırasında dairesel referansların korunmasıyla ilgilidir. bu nedenle, önceki CreateSerializer
yöntem ve -Seri hale getirmede bir kod örneğinde sonsuz döngü
class ReferencePreservingDataContractSerializerOperationBehavior
:DataContractSerializerOperationBehavior
{
public ReferencePreservingDataContractSerializerOperationBehavior(
OperationDescription operationDescription)
: base(operationDescription) { }
public override XmlObjectSerializer CreateSerializer(
Type type, string name, string ns, IList<Type> knownTypes)
{
return CreateDataContractSerializer(type, name, ns, knownTypes);
}
private static XmlObjectSerializer CreateDataContractSerializer(
Type type, string name, string ns, IList<Type> knownTypes)
{
return CreateDataContractSerializer(type, name, ns, knownTypes);
}
public override XmlObjectSerializer CreateSerializer(
Type type, XmlDictionaryString name, XmlDictionaryString ns,
IList<Type> knownTypes)
{
return new DataContractSerializer(type, name, ns, knownTypes,
0x7FFF /*maxItemsInObjectGraph*/,
false/*ignoreExtensionDataObject*/,
true/*preserveObjectReferences*/,
null/*dataContractSurrogate*/);
}
}
sonsuz bir döngüye (stackoverflow) oluşturmayan CreateDataContractSerializer
mi?
private static XmlObjectSerializer CreateDataContractSerializer(
Type type, string name, string ns, IList<Type> knownTypes)
{
return CreateDataContractSerializer(type, name, ns, knownTypes);
}
Şimdi bu yöntemler kullanımda değil midir? Burada neyi özlüyorum?