직렬화를 수행하기 전에 사용자에게 다시 캐스트하지 않는 이유는 무엇입니까?
일부는 XmlSerializer를 주위 파고하기 후에, 이것은 나를 위해 그것을 수행합니다
var myUser = new myUser();
myUser.Name = "Test name";
var serializer = new XmlSerializer(typeof(User), new Type[] {myUser.GetType()});
serializer.Serialize(Console.Out, myUser);
여기 (이 경우 사용자) 당신이 캐스팅 할 기본 유형과
XmlSerializer
을 만드는 수행되고 무엇
다른 유형의 배열을 포함 할 수 있습니다. 이러한 유형은 기본 유형에서 파생되어야합니다.
출력 :
<?xml version="1.0" encoding="ibm850"?>
<User xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org 2001/XMLSchema" xsi:type="myUser">
<Name>Test name</Name>
</User>
참고 xsi:type="myUser"
이 당신의 직렬화 과정에 문제가 발생할 수 있는지 확실하지 않습니다.
이해가 안됩니다. 기본 유형의 모든 구성원을 상속하는 유형은 유창한 유효성 검사 규칙에 어떻게 도움이됩니까? – svick
http://stackoverflow.com/questions/9068134/controller-input-validation-in-mvc-api/9068366#9068366 – Jules
하지만 그건 상속에 대해서는 아무 말도하지 않습니다. 사실'User'가 모든 속성을 가진 유형이면, 기본 유형의 멤버를 파생 된 유형에서 제거 할 수 없기 때문에 'myUser'는 이러한 종류의 유효성 검사에 쓸모가 없습니다. myUser'는'User'만으로는 성취 할 수없는 목적은 무엇입니까? – svick