2010-08-21 2 views
3

WCF 데이터 서비스 (ADO.NET 데이터 서비스)를 사용하는 OData 서비스가 있습니다. 프로그래밍 방식으로 OData 서비스를 사용해야합니다. 필자는 DataSvcUtil을 사용하여 프록시를 만들고 싶지 않습니다. 대신 런타임시 OData 프록시를 생성해야합니다.OData 프록시의 프로그래밍 방식 생성

WSDL의 경우 CodeDOM 및 System.ServiceModel.Discovery를 사용하여 프록시를 생성 할 수 있습니다.

OData 프록시를 생성하는 프로그래밍 방식이 있는지 궁금합니다.

감사

답변

6

DataSvcUtil는 코드를 생성하는이 클래스 http://msdn.microsoft.com/en-us/library/system.data.services.design.entityclassgenerator_members.aspx를 사용합니다. 그래서 당신도 똑같이 할 수 있습니다. 소스 코드를 생성 한 후에는 컴파일러를 호출하여 (CodeDOM도 그렇게 할 수 있다고 생각합니다) 결과 dll을로드하십시오. XmlReader를 사용하므로 서비스의 $ metadata enpoint에서 XmlReader를 만들어야하지만 매우 간단합니다.

+0

젠장! 이 작업에 너무 가깝지만 EntityClassGenerator가 INotifyPropertyChanged를 구현하는 엔티티 유형을 생성하지 않는 것으로 보입니다.이 속성은 내 앱에서 프록시를 사용할 수 있어야합니다. EntityClassGenerator에서 구성 옵션을 볼 수 없습니다. – lesscode

+1

EntityClassGenerator.UseDataServiceCollection = true로 설정을 시도 했습니까? INotifyPropertyChanged를 구현해야하는 생성 클래스에 대한 데이터 바인딩을 가능하게합니다. –

+0

네, 고마워요. 내가 게시 한 후 몇 분 후에 발견했습니다. 그 부동산의 이름이 저를 속였습니다 ... 나의 동적 데이터 서비스 클라이언트는 이제 아주 적은 코드로 잘 작동합니다. 원래 팁 주셔서 감사! – lesscode