일반 확장 메서드 (예 : AsXml)를 만들었지 만 일부 클래스에서 인터페이스 (IXmlable)를 사용하여 제약 조건을 유지하려고합니다.인터페이스 제한이있는 일반 확장 메서드
제약 조건을 도입하자마자 일부 방법이 저와 논쟁 중입니다. 내 방법
하나는 List<Interest>
을 returing하고 컴파일러는 말한다 :
유형 'System.Collections.Generic.List'가 제네릭 형식이나 방법 '을 MyWebApp의 형식 매개 변수'T '로 사용할 수 없습니다. Entities.Extension.AsXml (T) '. 'System.Collections.Generic.List'에서 'MyWebApp.Interfaces.IXmlable'로의 암시적인 참조 변환은 없습니다.
이public class Person : IXmlable
{
public string Name { get; set; }
public List<Interest> Interests { get; set; } // My Interest class also implements IXmlable
}
내 확장 방법은 다음과 같습니다 :
이
내 클래스입니다public static class Extension
{
public static string AsXml<T>(this T entity) where T : IXmlable
{
return MakeItXml(entity);
}
}
이 내 방법
return MyMethodThatReturnsAListOfPersons().AsXml();
어떤 언어를? – mate64