이 간단한 질문 인 경우 사과드립니다. "범용"C# 웹 서비스 클라이언트를 작성했습니다. 웹 서비스의 WSDL을 검사하고 웹 서비스에 요청을 제출하고 응답을 표시 할 수있는 Windows Forms UI를 생성하여 작동합니다.C# 클래스를 ArrayOf 인스턴스로 인식하는 방법
다음과 같이 UI를 생성합니다. 먼저 웹 서비스의 WSDL에서 ServiceDescriptionImporter 및 CodeCompiler를 사용하여 컴파일 된 어셈블리를 동적으로 생성 한 다음이 프로세스에서 생성 한 SoapHttpClientProtocol 클라이언트를 인트로 스펙 트합니다.
각 웹 서비스 메서드에 대해 입력 매개 변수 필드를 표시 할 UI는 매개 변수 유형을 반영하여 생성됩니다. 본질적으로 각 유형을 인식하고이를 표시하는 방법을 결정해야합니다 (따라서 String 매개 변수는 텍스트 상자, 확인란은 부울로 표시됨).
인식하기 어려운 유형은 ArrayOfKeyValuestringstringKeyValueOfstringstring과 같은 유형입니다. if (이름이 "ArrayOf"로 시작하는 if()의 행을 따라) 유형의 이름을 간단히 구문 분석 할 수는 있지만 이러한 유형을 어떤 방식 으로든 배열로 인식하는 더 좋은 방법이 있어야합니다.
누구나이 방법을 제안 할 수 있다면 가장 감사하게 생각합니다. 감사합니다, 마틴
샘플 콘텐츠를 제공 할 수 있습니까? SOAP XML 또는 문제를 설명하는 코드 부분. XML이 명시 적으로 배열을 식별한다는 것을 나타내는 것으로 보이는 SOAP 문서를 찾았습니다. http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383522 –
문자 그대로 "ArrayOfKeyValuestringstringKeyValueOfstringstring"이라고 불리우는가? 아니면 실제로 배열입니까? 즉, 객체가 실제로 배열인지 알고 싶습니까? –
안녕하세요 - 그렇습니다. 문자 그대로 그 유형이라고합니다. 웹 서비스 측면에서 형식은 Dictionary로 선언되지만 내 도구가 웹 서비스를 호출하면 반환 된 개체는 ArrayOfKeyValueStringStringStringValueOfstringstring 형식으로 식별됩니다. type.IsArray를 테스트하면 false입니다. 그러나 제 목적을 위해이 코드를 배열과 비슷한 것으로 취급하고 싶습니다. 따라서 "배열과 같은"것으로 식별해야합니다. –
user304582