2012-09-19 5 views
1

데이터 테이블을 반복하고 각 값을 datacontract 목록의 주어진 속성에 할당하는 데 어려움이 있습니다. 내가 DispatchDetails의 목록을 반환하고 싶습니다 내 서비스에서리스트를 통해 반복합니다. <datacontract>

namespace Shared.DataContracts 
{ 
    [Serializable] 
    [DataContract(Name = "DispatchAddress")] 
    public class DispatchDetails 
    { 
     [DataMember(Name = "ShippingAddressCode")] 
     public string ShippingAddressCode { get; set; } 

     [DataMember(Name = "ShippingName")] 
     public string ShippingName { get; set; } 

     [DataMember(Name = "Address")] 
     public Address Address { get; set; } 

     [DataMember(Name = "ContactName")] 
     public string ContactName { get; set; } 

     //etc 
    } 
} 

,하지만 내 문제는 각 속성에 값을 할당 할 수 있습니다 :

그래서 나는 다음과 같은 DataContract 있습니다.

필자가 성취하려는 것을 개선하기 위해 최신 dodgy 코드 라인을 추가했습니다. 나는 몇 가지 방법을 시도했지만, 나는 지금 나무를 통해 나무를보고 고군분투하는 것 같습니다 :)

주어진 조언을 미리 감사드립니다.

친절한, 기독교

답변

2

당신은 이것을하려고합니까?

foreach (DataRow row in dt.Rows) 
{ 
    var item = new DispatchDetails(); 

    item.ShippingAddressCode = Convert.ToString(row["ShippingAddressCode"]); 
    item.ShippingName = Convert.ToString(row["ShippingName"]); 
    // etc. 

    dispatchDetails.Add(item); 
} 
+0

브릴리언트! 그것은 내가 그것을 볼 때 완벽한 의미를가집니다. 명시 적으로 DataRow로 행을 선언해야했지만 그렇지 않으면 매력처럼 작동합니다. [ "ShippingAddresssCode"] 행에 오류가 발생합니다. []을 (를) 사용하여 색인 생성을 적용 할 수 없습니다. 'object' –

+0

@ user1683734 : 예, DataTable.Rows에는 강력한 형식화 된 컬렉션이 없으므로 필요합니다. 나는 대답을 고쳤다. –

+0

대단히 감사합니다. –