wcf를 사용하는 프로젝트가 있습니다. 현재 NetDataContractSerializer를 사용합니다. protobuf-net으로 마이그레이션하고 싶습니다. 내 서비스는 folowing 계약을 맺고 :OperationContract에 객체가있는 wcf serializer로 protobuf-net
interface IRemotingServer
{
[OperationContract]
TypeConfig GetTypeConfig(string typename);
[OperationContract]
object ExecuteMethod(InstanceIdentifier instance, string methodName, object[] parameters);
[OperationContract]
object ExecuteGenericMethod(InstanceIdentifier instance, string methodName, object[] parameters, string[] genericTypes, string returnType);
[OperationContract]
object GetRemoteProperty(InstanceIdentifier instance, string propertyName);
[OperationContract]
void SetRemoteProperty(InstanceIdentifier instance, string propertyName, object value);
[OperationContract]
ObjectDataPacket GetObject(InstanceIdentifier instance);
[OperationContract]
bool Connect();
[OperationContract]
bool Disconnect();
}
일이 잘 간다, 내가 객체 유형입니다 반환 내 계약의 GetRemoteProperty 메소드를 호출하려고 할 때까지. 내가 발견 서버 추적을 사용하여 해당 서버는 매개 변수 http://www.mersoft.am/Remoting:GetRemotePropertyResult를 직렬화하는 동안 오류가 발생했습니다
메시지 folowing와 불면. InnerException 메시지가 'Type'입니다. 데이터 계약 이름이 'ArrayOfInstanceIdentifier : Mersoft.Remoting'인 Mersoft.Remoting.InstanceIdentifier [] '이 (가) 필요하지 않습니다. DataContractResolver를 사용하거나 알려진 유형 목록에 정적으로 알려지지 않은 유형을 추가하십시오 (예 : KnownTypeAttribute 속성을 사용하거나 DataContractSerializer에 전달 된 알려진 유형 목록에 추가). 자세한 내용은 InnerException을 참조하십시오.
그럼 어떻게 해결할 수 있습니까?
@Gor 짧은 대답 : 아니오; 그래서 나는 그것을 언급하지 않았다; p –