문제

내 응용 프로그램에 특수 목록을 설명하는 인터페이스가 있습니다 ...

Public Interface IAlphabeticListItem

    Property StartingLetter() As String
    Property DetailsList() As Generic.List(Of DetailsData)

End Interface

여러 개체는이 인터페이스를 구현하지만 기본 객체가 아니라 인터페이스로 웹 서비스에서 반환하고 싶습니다.

<WebMethod()> _
Public Function GetCategoryList(...) As Generic.List(Of IAlphabeticListItem)

    ...

End Function

안타깝게도 이것은 예외를 유발합니다

인터페이스 ialphabeticlistime을 일련화 할 수 없습니다.

예외 세부 사항 : System.NotSupportedException : 인터페이스 IalPhabeticlistem을 일련의 시리얼 화 할 수 없습니다.

인터페이스 직렬화를 가능하게하는 방법이 있습니까, 아니면 각 객체를 인터페이스를 구현하는 콘크리트 클래스로 변환 한 다음 해당 클래스를 반환해야합니까?

도움이 되었습니까?

해결책

예 그리고 아니오. 지원되지 않기 때문에 XML 직렬화에 대한 일반 클래스를 직접 노출시킬 수 없습니다. 그러나 동일한 컬렉션에 비 게 릭 인터페이스를 노출시키고 직렬화 할 수 있습니다. 이 블로그는이 작업을 만드는 방법에 대해 자세히 설명합니다.

http://srtsolutions.com/blogs/billwagner/archive/2006/11/20/xml-serialization-and-generic-interfaces.aspx

다른 팁

지금 당장 테스트 할 시간이 없지만 C#에서는 인터페이스를 확장 할 수 있으므로 vb.net에서이를 수행 할 수 있다고 가정합니다.

Ialphabeticlistem을 확장 할 수있게하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top