2011-08-04 7 views
3

내 WCF 인터페이스 클래스의 모든 작업 계약에 [ServiceKnownType(typeof(Document))]을 사용하고 있습니다.이 KnownType.Instead를 사용하지 않으려면 web.config의 DeclaredTypes를 사용하십시오. Web.config 파일에서 DeclaredTypes를 구성하는 방법에 대한 도움을받을 수 있습니까?WCF에서 선언 된 유형 사용

답변

3

구성에 알려진 유형을 추가하는 옵션은 서비스 계약이 아닌 데이터 계약에만 적용됩니다. 이 경우

<configuration> 
    <system.runtime.serialization> 
    <dataContractSerializer> 
     <declaredTypes> 
     <add type="MyNamespace.DocumentBase, MyAssembly, Version=..."> 
      <knownType type="MyNamespace.Document, MyAssembly, Version=..."/> 
     </add> 
     </declaredTypes> 
    </dataContractSerializer> 
    </system.runtime.serialization> 
</configuration> 

: Document가에서 파생 된의 유형이 항상 같은 (그리고 System.Object) 인 경우에는 다음과 같이 보일 것이다, (MSDN에 대한 추가 정보를 원하시면)이 설정 옵션을 사용하여 해당 작업을 수행 할 수 있습니다 이 옵션을 적용하지 않으면이 옵션을 DataContractSerializer 생성자에 전달할 수 있습니다.이 생성자는 전체 서비스에 적용 할 수있는 일부 동작을 사용하여 수행 할 수 있습니다. DataContractSerializerNetDataContractSerializer으로 대체 할 수있는 게시글을 사용하는 것이 좋습니다 (serializer를 바꾸는 대신 다른 DataContractSerializer 인스턴스를 반환하지만 전달 된 알려진 유형에는 항상 typeof(Document)을 추가하십시오.)

관련 문제