servicestack MsgPackServiceClient를 사용하는 동안 서비스에서 응답을 역 직렬화하려고 할 때 아래 오류가 발생합니다.
예외 : { " 'System.Int32'유형의 'test1'멤버를 역 직렬화 할 수 없습니다."}
InnerException : { "오프셋 1의 'FixedRaw'(0xA4) 형식에서 'System.Int32'형식 값을 변환 할 수 없습니다."}
서버 측 Servicestack 서비스 :
public class TestService : Service
{
public test Get(test s)
{
return new test { test1 = 12, test2 = "testvalue", Domian = "1234" };
}
}
서버 측 DTO :
[Route("/test")]
public class test
{
public int test1 { get; set; }
public string test2 { get; set; }
public string Domain { get; set; }
}
클라이언트 측 코드 :
class Program
{
static void Main(string[] args)
{
MsgPackServiceClient c = new MsgPackServiceClient(@"http://localhost:52862/");
var result = c.Get<test>(@"/test");
}
}
클라이언트 측 dto :
public class test
{
public int test1 { get; set; }
public string test2 { get; set; }
}
클라이언트 측에는 도메인 속성이 필요하지 않습니다. 값을 얻으려고하면 위의 예외가 발생합니다.
Domain 속성을 추가하면 제대로 작동하고 값을 얻을 수 있습니다.
정말 모든 속성이 필요합니까?
이 문제를 해결하는 데 도움을주세요. 시간 내 줘서 고마워.
MsgPack과 같은 이진 형식을 사용하는 경우 많은 이진 직렬 변환기가 예상하도록 설계된 직렬화에 사용 된 정확한 DTO를 사용해야합니다 .
클라이언트에서 부분 DTO를 사용하려면 대신 JSON과 같은 유연한 텍스트 직렬 변환기를 사용해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다