2011-12-06 6 views
0

.Net4 백엔드와 Silverlight 5 프런트 엔드간에 공유하려는 대형 개체 구조가 있습니다. 적절한 유형의 두 개의 클래스 라이브러리 프로젝트를 만들고 .NET 라이브러리에서 구현 된 객체 구조를 SL 라이브러리에 연결했습니다. Silverlight 클라이언트 측에서 Silverlight 클래스 라이브러리를 참조합니다. 서비스 참조를 생성 할 때 "참조 된 어셈블리에서 유형 재사용"옵션을 선택했습니다. 그러나 서비스 참조를 생성 할 때 참조 된 어셈블리에있는 유형이 여전히 생성되고 있음을 알게됩니다. 특정 유형에만 해당하며 대부분 컬렉션 유형 (<CollectionDataContract>으로 지정) 인 것으로 보입니다. Silverlight 서비스 참조 생성 - 프록시 클래스를 생성하는 원인을 알리는 방법

나는 일반적으로 List<MyTypeB>에서 그들이 MyListTypeB 있습니다 중 하나 List<MyTypeA> 또는 일부의 경우, MyListTypeB 상속을 많은 속성을 가진 주된 목적이있다. 프록시가 생성되도록하는 MyListTypeB과 비슷한 클래스 인 것으로 보입니다. 이들은 모두 <CollectionDataContract>으로 지정되며 기본 생성자가 있습니다.

또한 나는 서비스 참조를 추가 할 프로젝트가 다른 SL 프로젝트에 대한 참조를 가지고 있지만 엔티티가 포함 된 프로젝트를 업데이트 할 때 dll에 대한 새로운 참조가 직접 추가된다는 것을 알게되었습니다 프로젝트에. 왜 이런 일이 일어나고 있는지, 아니면 서비스 프록시 생성에 혼동을 일으키는 지 확실하지 않습니다.

서비스 생성에서 프록시 클래스를 생성하는 원인이되는 클래스/속성을 알 수있는 방법이 있습니까? 또는 시행 착오를 일으킬 때까지 속성을 주석으로 처리해야하는 경우입니까?

+0

흠. 좋아, 나는 프록시에서 생성되고 있었다 클래스는 사실을 발견 정말로 단지 : System.Collections.ObjectModel.ObservableCollection 형 클래스 및/CT 매개 변수 SLSvcUtil를 사용하여 프록시를 생성하여에서이 문제를 방지 함 생성됩니다. 합리적으로 큰 팀에서 일하고 있지만 devs가 slsvcutil을 실행해야하는 것은 아닙니다. 서비스 참조 추가 대화 상자를 통해이 기능을 수행 할 수 있습니까? – hitch

답변

0

나는 지금 svcmap 파일의 사용에 대해 발견하고, 내 컬렉션의 유형을 포함하도록 CollecitonMappings 요소를 업데이트, 여기에 설명했다 :

http://mostlydevelopers.com/blog/post/2009/12/14/Configure-WCF-Service-ndash3b-Reuse-Collection-Types-Issue.aspx

svcmap 기능이라고 조금 이상한 것 같다 그래서 서류 미비.

나는 그가 다음과 같은 파일 svcmap하는 int 항목을 추가 할 수 있었다 :

<CollectionMappings> 
    <CollectionMapping TypeName="MyNamespace.MyType" Category="List" /> 
</CollectionMappings> 

그리고 내가 프록시 컬렉션이 생성되지 않는 서비스 참조를 업데이트 할 때.