이의 난을 가정하자 처리 된 XML 직렬화 된 인스턴스는 같은 클래스를 가지고있다. XML이 직렬화되고 모든 것이 잘됩니다. 지금은 프로필의 크기를 줄이고 자, 나는 짧은 무언가에 의해 긴로 propertyNames를 교체하려면 :변경 클래스 서명,
public class SomeObject
{
[XmlElement("id")]
public Guid InternalId { get; set; }
[XmlElement("ad")]
public string Address { get; set; }
}
새로운 객체 직렬화 잘, 짧은, 그리고 모든 것을 얻을. 그러나 XmlSerializer
은 이전 XML 파일을 deserialize 할 수 없습니다. 클래스 서명을 변경하는 데 적용 할 수있는 후크가 있지만 이전 인스턴스를 deserialize 할 수는 있습니다.
나는 eventhandler XmlSerializer_UnknownElement
을 가지고있다. 그런 다음 대상 속성의 값을 직접 설정할 수는 있지만 요소의 값은 문자열로만 설정할 수 있으므로 오류가 발생하기 쉽습니다.
Double'XmlElements'는 (는)'XmlChoiceIdentifier'를 제공하기 위해 작동합니다. 이 모든 코드를 직접 작성하는 것은 최후의 수단입니다. 나는 이것을 UnknownElement로 해결하지만 해키가됩니다. –