Привет, я работаю с DataContractSerializer
и у меня есть метод, реализованный для атрибута [OnDeserialized]
для одного из моих сериализованных объектов.
Теперь я хочу использовать одно из моих определенных свойств (в классе, который имеет вызовв метод DataContractSerialiser ReadObject ()) в этом методе для некоторого выполнения.
Есть ли способ получить значение этого определенного свойства в методе, реализованном для атрибута [OnDeserialized]
.
как выглядит мой код
class ClassResponsibleForSerializingAndDeserializingMainObject
{
public int PropertyToBeUsedInOnDeserializedMethod{get;set}
public static T DeserializeFile<T>(string fileLocation)
{
T deserializedObject = default(T);
var serialiser = new DataContractSerializer(typeof(T));
using (var reader = new XmlTextReader(fileLocation))
{
deserializedObject = (T)serialiser.ReadObject(reader);
}
return deserializedObject;
}
}
[DataContract]
class SomeInnerClassToBeSerialized
{
//Some data members
[OnDeserialized]
private void OnDeserialized(StreamingContext context)
{
//Need the access to ClassResponsibleForSerializingAndDeserializingMainObject.PropertyToBeUsedInOnDeserializedMethod
}
}
Есть ли способ, которым я могу этого достичь.
Обратите внимание, что я не могу сделать свой PropertyToBeUsedInOnDeserializedMethod
статичным, поскольку я не хочуизменить мою уже работающую архитектуру.
Также заполнение PropertyToBeUsedInOnDeserializedMethod
в ClassToBeDeserialised
передачей параметров конструктора не является возможным решением, поскольку у меня есть такое же требование и для многих других классов.