2014-06-24 4 views
0

C#에서 EDI 메시지를 만들고 구문 분석 할 수있는 API를 만들려고합니다.EDI 데이터 구조를 정의하는 방법 C090

개념의 증거로 내가 너희를 내가 속성을 만들 수도 가능 방법을 잘 모르겠습니다 here

을 볼 수있는 C090 데이터 구조를 만들 작은 클래스 라이브러리를 쓰기를 시도하고 간단하게하는 3286 데이터 요소에는 5 개가 있습니다. 나는 이것을 위해 배열이나리스트를 사용하고 싶지 않고 다섯개의 속성으로 이들을 생성 할 수있는 방법이 있는지 궁금해했다. 그러나 밑줄이나 숫자로 그들을 맹목적으로 만들지는 않았을까?

+0

복합 요소 유형을 사용하여이 문제를 해결할 것입니다. NAD 세그먼트의 C080도 같은 방법입니다. 전체 요소를 구성하기 위해 원본에서 최대 5 개의 정보를 가질 수 있습니다. 첫 번째 하위 요소는 표준에 따라 필수 항목입니다. 나는 당신이 무엇을하려고 하는지를 잘 모르겠다. 그러나 나는 당신이 소스 쪽에서 이름을 붙이는 것이 중요하지 않아 보인다. 분리 문자를 기반으로 인바운드 문서를 구문 분석하는 것이 더 간단합니다. 귀하의 질문은 귀하가하려는 일의 몇 가지 샘플 코드로 개선 될 수 있다고 생각합니다. – Andrew

+0

@Andrew 아마 당신이 맞을 것 같아요. 별 문제가 아니 겠지만, 원래의 데이터 요소만큼 속성 이름을 가깝게 유지하려고합니다. 번호를 매기고 어떻게되는지 보도록하겠습니다. – Intrepid

+0

@mike : 번호 매기기의 단점은 복합 하위 번호 매기기에 새 하위 요소가 추가되면 나머지 세그먼트가 잘못됩니다. (그게 문제인가, 아니면 당신의 판단까지 중요할까요?) – eppye

답변

0

클래스 속성을 사용하여 컴포지트의 모든 요소를 ​​정의하여 데이터 구조를 만드는 방법을 찾았습니다.

예를 들어, 그렇지 않으면리스트에 추가되고, 그것이 Element이 복합체의 일부이며, 그렇지 않은 경우 예외가 발생하는지의 정의를 체크 할 Append(Element) 메소드를 호출 :

C090 c = doc.CreateComposite<C090>(); 
E3477 e = doc.CreateElement<E3477>(); 
e.Value = CodesList.E3477.Code001; 
c.Append(e); 

지금까지 훌륭하게 작동하는 것 같습니다.