나는 클래스 Foo
가 System.Xml.Linq.XElement
을 확장,하지만 내가 호출 할 때 확장 System.Xml.Linq.XElement - 내부 CloneNode
Foo parent = ..; Foo child = ..; parent.Add(child);
XElement
이며, 유형
Foo
이 아닌 덧붙였다.
Add
방법 내에서 호출되는
internal abstract XNode CloneNode()
의 때문에
이
입니다.나는 때문에 내부의이 무시할 수 없습니다. 이 경우 내 옵션은 무엇입니까? CloneNode()
을 호출하는 각 함수를 재정의하고 싶지 않습니다. 대한
당신이 서브 클래스'Foo'를 사용하여 추가하려는 코드는 무엇입니까? 생성 프로세스를 액세스하거나 수정할 수없는 것으로 보인다고해서 다른 기술을 사용하여 'XElement'를 확장하는 것이 가능할 수도 있습니다. –
각 노드에 몇 가지 추가 메타 데이터를 추가하려고합니다.이 구조의 탐색, 검색 및 기타 작업을 위해 Xml.Linq 기능을 유지하는 것이 좋습니다. 나는 이것을하기 위해 wrapper를 만들 필요가 있다고 생각하지만 XElement를 확장하는 것보다 훨씬 많은 코드가 필요하다. 여분의 멤버가 필요하기 때문에 Extension 메서드를 사용할 수 없습니다. – watbywbarif
더 많은 임시 해결 방법 ... 가능한 한 클래스'Foo'를 사용하고 필요에 따라'XElement'로 변환하는 것은 어떻습니까? 그리고 전환으로 모든 추가 정보가 추가됩니다. –