2009-08-12 2 views
0

내 ASP.NET 웹 사이트에서 모든 데이터 레이어로의 호출은 인터페이스로 엔터티를 반환하고 웹 사이트는 구체적인 유형을 알 필요가 없습니다. 이 잘 작동하지만 사용자 프로필에 이러한 형식 중 하나를 저장하려고 할 때 문제가 발생했습니다.ASP.NET 프로필에 인터페이스 유형 저장

public interface IInsured : IPerson, IEntity, ISerializable 

및 데이터 영역의 구체적인 유형를 ISerializable을 구현 않습니다 내 인터페이스는 다음과 같은를 ISerializable을 구현합니다.

<add name="ActiveInsured" type="FacadeInterfaces.IInsured" serializeAs="Binary" defaultValue="[null]"/> 

그것은 잘 컴파일,하지만 난 인터페이스를 직렬화 할 수 없다는) Profile.Save (에 런타임 오류가 발생합니다 : Web.config의에서 내 프로필 속성입니다. 나는 또한 serializeAs = "Xml"로 시도했다. 내 인터페이스가 ISerializable을 구현하면 작동 할 것이라고 생각했습니다.

해결 방법을 알기 전에이 문제가 있었나요?

+0

프로필에 일반 목록을 저장하는 것과 비슷한 문제가있었습니다. 내 해결 방법은 일반 목록에서 상속 된 클래스를 만드는 것이 었습니다. 예 : public class RecentlyViewed : List 어쩌면이게 효과가 있을까요? –

답변

0

프로필 속성의 컨텍스트에서 명시 적으로 serialize 할 형식을 지정해야합니다.

인터페이스를 인스턴스화 할 수 없으므로 ASP.net에서 인터페이스를 인스턴스화 할 수 없으며 사용자가 언급 한 예외가 발생합니다.

관련 문제