복합 형 (myComplexResult)을 반환하는 WCF 서비스에 메서드가 있습니다.이 중 하나의 멤버로 List (Of Common.myBaseClass)가 포함되어 있습니다. 이 목록에는 Common.myBaseClass를 상속 한 Foo.myClass1 및 Bar.myClass2 유형의 다양한 항목을 보유하고 싶습니다. 이러한 클래스는 모두 다른 어셈블리에 정의되어 있습니다.다른 어셈블리의 데이터 계약에 대해 알려진 유형 선언
유형 'Foo.myClass1' 데이터 계약 이름 'myClass1 : http://mynamespace/foo/은' 는 예상되지 않는다
서비스는이 예외가 발생합니다. 이 아닌 알려진 형식을 알려진 형식 목록에 정적으로 추가하십시오. 예를 들어 KnownTypeAttribute 특성을 사용하거나 에 의해 알려진 형식 목록에 추가하면 DataContractSerializer로 전달됩니다.
좋아, 내가 DataContractSerializer가 알고있는 그들과 함께 무엇을 할 수 있도록 내가 myBaseClass의 알려진 유형으로 myClass1 및 MyClass2의를 선언 할 필요가 있음을 알고 있습니다. 나는 명백한 일을 할 수없고 myClass1과 myClass2에 대한 KnownType 속성으로 myBaseClass 클래스를 꾸밀 수 없다. 이는 원형 종속성을 발생시키는 Foo 및 Bar 어셈블리에 대한 참조를 추가한다는 것을 의미하기 때문이다.
은 내 config 파일에서 declaredTypes을 사용하는 기대했다 나는 노력이 :<DataContract(name:="myComplexResult", [namespace]:="http://mynamespace/coo/")> _
<KnownType(GetType(Foo.myClass1))> _
Public Class myComplexResult
<DataMember(name:="myList")> _
Public myList As List(Of Common.myBaseClass)
: 수 있도록하는 것, 그래서 myComplexResult에 KnownType 속성을 추가하려하지 않았다
<system.runtime.serialization >
<dataContractSerializer >
<declaredTypes >
<add type ="Common.myBaseClass, Common">
<knownType type ="Foo.myClass1, Foo" />
<knownType type ="Bar.myClass2, Bar" />
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
하지만 여전히 같은 오류가 발생합니다. 도움! 나는 무엇을해야합니까?