2012-06-04 1 views
1

I Love Linqpad. 엔터티 덤프에서 HTML 대신 XML 문서를 가져 오는 방법이 있습니까? 엔티티 덤프에서 HTML 대신 XML 문서를 가져 오는 방법이 있습니까?

내가는 XML 문서 대신 LinqToSql 변경 집합에있는 HTML 문서를 만들 수 LinqPad.Util를 사용하고 싶었다. 변경 집합을 성공적으로 직렬화하는 여러 가지 방법을 시도했습니다. Linqpad 유틸리티 CreateXhtmlWriter는 훌륭하게 작동하지만 XML 문서가되도록 선호합니다. 어떻게 그렇게 빨리 할 수있는 아이디어?

답변

2

는 현재 XML에 임의의 객체 그래프를 덤프하기 LINQPad 아무것도 없다. 그러나 확장 메서드를 사용하여 매우 쉽게 설명 할 수 있어야합니다. LINQPad에 내 확장로 이동하여 같은 방법 쓰기 :

public static XElement ToXml (this ChangeSet cs) 
{ 
    return new XElement ("ChangeSet", 
     new XElement ("Inserts", cs.Inserts.Select (e => EntityToXElement (e))), 
     new XElement ("Updates", cs.Updates.Select (e => EntityToXElement (e))), 
     new XElement ("Deletes", cs.Deletes.Select (e => EntityToXElement (e)))); 
} 

static XElement EntityToXElement (object o) 
{ 
    return new XElement (
     o.GetType().Name, 
     o.GetType().GetFields().Select (f => new XElement (f.Name, f.GetValue (o)))); 
} 

다음을, 어떤 쿼리, 당신은 갈 수 있습니다

GetChangeSet().ToXml().Dump();