XmlSerializer를 구현하기 위해 Base 개체 클래스를 구현하고 있습니다.기본 클래스는 그것을 구현하는 개체의 속성을 알 수 있습니까?
class FN_ObjectBase
{
public object FromXML(string xml)
{
var serializer = new XmlSerializer(typeof("ObjectA??"));
var reader = new XmlTextReader(new StringReader(xml));
var scriptItem = serializer.Deserialize(reader);
return scriptItem;
}
}
class ObjectA : FN_ObjectBase
{
public object = new ObjectA.FromXML("serializedXML");
}
어떻게 파생 클래스를 기반으로 개체를 만들려면 FromXML 메서드를 올바르게 작성할 수 있습니까?
public T FromXML<T>(string xml)
{
var serializer = new XmlSerializer(typeof(T));
var reader = new XmlTextReader(new StringReader(xml));
var scriptItem = serializer.Deserialize(reader);
return (T)scriptItem;
}
전화를 :
FromXML<ObjectA>("serialized xml")
OOP 규칙 : 기본 유형 유도하지 사용하지 마십시오 유형
당신은 FromXML을 추상적 인 방법으로 만들어야한다고 생각합니다. 그리고 나서 FN_ObjectBase의 파생 클래스 각각은 자신의 버전을 구현할 수 있습니다. –
상속은 부모 클래스에 자녀의 책임을 지정하지 않아야합니다. 구현이 다른 경우 기본 비헤이비어를 정의하고 하위 비헤이비어에서이를 재정의 할 수 있습니다. 제목의 질문에 대한 대답은 아니오입니다. – ryanyuyu
@LeslieDavies 구현의 유일한 차이점은 메서드가 호출 될 때 기본 클래스에서 메서드를 구현할 필요가 없다는 것입니다. 이 경우에는 –