2014-04-05 2 views

답변

1

datajs 문서는 mention the subject 않습니다. 샘플에 사용 된 OData.read에 대한 참조가 명시 적으로 메타 데이터를 해석한다고 명시하지는 않았지만 이는 암시 된 것처럼 보입니다. 그걸 확인해야합니다.

그러나 선택적인 메타 데이터 개체를 사용하지만 라이브러리에 메타 데이터에 대한 공식적인 표현이 있음을 제안합니다. OData.read을 통해 생성 된 것으로 생각합니다. 문서가 존재하지 않는 것 같습니다. 나는 그것이 어떻게 생겼는지 모른다.

거기에서 Ember에 적합한 모델로 모델을 추가 변환 할 수 있어야합니다.

(datajs는 클라이언트 측의 하나로, OData 작업을 구현하는 자바 스크립트 라이브러리 낮은 수준이다.) 나는 또한 JayStack 메타 데이터를 추출하는 JaySvcUtil하는 CLI 공정 어셈블리 (.NET 프로그램)을 제공하는 것을 알고


. 대상 형식은 JavaScript 코드이지만 JayData에만 사용됩니다. 아직도, 당신은 거기에서 일할 수 있습니다.

마야가 언급 한 바와 같이

, 마이크로 소프트 .NET 프록시를 생성하는의 OData Client Code Generator을 제공합니다. 그것을 변형시키는 것이 더 어려울 수도 있습니다.


(실제로는 가능성이) 당신을 위해이 작품의 아무도, 당신은 항상 구문 분석 할 수없는 경우 $metadata 자신 자원 - 나는 항상 하나로, OData의 현재 버전에서 XML 표현을 사용 믿습니다.

브라우저에서 동적으로 수행해야하는 경우 DOMParser 또는 XMLHttpRequest을 사용하십시오. More information.

정적으로 수행 할 수 있다면 꼭 수행해야합니다. 성능면에서 가장 좋습니다. 이 경우 모델을 가져오고 구문 분석하고 변환하고 다시 직렬화 할 언어 및 런타임 도구를 사용할 수 있습니다.

형식 (CSDL)은 OData here (v4) 및 here (v3)으로 지정됩니다.


마지막으로 this list을 확인하십시오. 사용자의 요구에 맞는 새로운 것이 나타날 수 있습니다.

0

두 가지 제안이 도움이 될 수 있습니다.

1, OData는 클라이언트 측 프록시 클래스를 생성하기 위해 클라이언트 코드 생성기를 제공합니다. 메타 데이터 url을 전달하기 만하면 .net 클라이언트 코드가 생성됩니다. 다음과 같은 블로그를 방문하십시오 : http://blogs.msdn.com/b/odatateam/archive/2014/03/11/how-to-use-odata-client-code-generator-to-generate-client-side-proxy-class.aspx

2, 모델이 "EdmModel"을 의미하는 경우 $ 메타 데이터를 비 직렬화 할 수 있습니다. OData 판독기는 $ 메타 데이터를 클라이언트 측에서 사용할 수있는 IEdmModel로 직렬화 해제 할 수 있습니다. 다음은 샘플 코드입니다 :

HttpWebRequestMessage message = new HttpWebRequestMessage(new Uri(ServiceBaseUri.AbsoluteUri + "$metadata", UriKind.Absolute)); 
message.SetHeader("Accept", MimeTypes.ApplicationXml); 

using (var messageReader = new ODataMessageReader(message.GetResponse())) 
{ 
    Model = messageReader.ReadMetadataDocument(); 
} 
관련 문제