처음 포스터, 오랜 시간 독자. 필자는 XML 가져 오기 (또 다른 첫 번째)를 작성했으며 충돌 할 수있는 방법과 접근 방식에서 길을 잃었습니다.속성 값을 기준으로 XML로드.
...
<TableRow>
<Field Name="DeliveryNote" Type="etc..">Text</Field>
<Field Name="OrderNumber" Type="etc..">Text</Field>
and so on...
</TableRow>
...
내가 (모든 요구되지 않음) 분야의 대부분의 속성과 객체를 가지고 있고, 나는 현재 속성을 채우는 해요 :
는 는내가 가져 오기에 노력하고있어 XML은 다음과 같이 대략 보인다 과 같이에서 구축 관련하여 XElement를 발생합니다 생성자에서 :
public Order(XElement p_tableRow)
{
foreach (XElement field in p_TableRow.Elements("Field"))
{
switch (field.Attribute("Name").Value)
{
case "DeliveryNote":
ReasonCode = field.Value;
break;
case "OrderNumber":
OrderID = field.Value;
break;
case "ProductCode":
CustProductCode = field.Value;
break;
case "Quantity":
QuantityCharged = field.Value;
break;
...
내 문제는이 일을 얻는 동안, 그것은 굉장히 투박 (못생긴) 보인다는 것이다. 확실히 더 좋은 방법이 있습니까?
투영으로이를 수행하는 방법에 대해 머리를 쓰려고했지만 노드의 속성을 기반으로 데이터의 대상을 결정하는 예제를 찾지 못했습니다.
내가 사용은 .NET 3.5
모든 포인터가 대량으로 감상 할 수있다.
당신은 약간의 매핑을하고 반사에 의존 할 수
Xml 직렬화를 사용해 보셨습니까? http://stackoverflow.com/questions/16831317/c-sharp-xml-deserialization-xmlatt –
나는 코드를 좋아합니다. 이해하고 수정하기가 쉽습니다. 피벗 테이블을 만들고 피벗 테이블 코드가 복잡 할 수 있습니다. 코드를 가능한 한 간단하게 유지하고 단축키를 찾지 않을 것입니다. – jdweng
@ Sam.C : 기술적으로 (필자가 이해하는 한) 직렬화가 올바른 방법임을 확신하지 못합니다. 키/값 쌍. – AshLewis