오픈 제네릭 형식에 대해 vaiable을 선언 할 수있는 방법이 있습니까?오픈 제네릭 형식에 대한 변수를 선언하는 방법은 무엇입니까? 가능한?
Given : 사용자가 팩토리 메소드에서 가져 오는 일반 클래스 로거가 있습니다. 어떤 로거를 담을 수있는 변수가있는 방법이 있습니까?
지금 로거는 로거에서 상속되며 어떤 유형의 데이터도 신경 쓰지 않고 인스턴스에 대한 변수를 선언 할 수 있습니다.
저는 MEF를 사용하며 [내보내기 (typeof (Logger <>)]와 같은 구문을 사용하여 제네릭 형식을 내보낼 수 있습니다. (가져 오기시 정확한 유형 지정) 일부 지원이 있습니다. 오픈 타입 (최소한 typeof). 내가 지금 필요한 것은
로거 < 로거 {get; 세트; }
그런 일을 할 가능성이 있습니까? 이 특정 구문을 통해 "유형 필요"가 표시됩니다.
왜 '객체'를 사용하지 않습니까? –
@Lasse : myObject.Log (something)가 컴파일 오류를 생성하기 때문에 (변수가 * 참조 만 저장하는 데 사용되지 않았 음). 'dynamic'은 옵션이 될 것이지만 컴파일 타임 구문 검사를 잃을 것입니다. – Heinzi
그게 정확히입니다. Logger에 대해 X (config) 유형의 로깅 서비스를 요청하지만 특정 genric 유형에 로깅하는 데 관심이 없습니다. 모든 내용은 기본 부분입니다. 때로는 로거 (하위 클래스 등)를 전달할 수 있으며 알 필요가 없습니다. 나는 (여기와 다른 시나리오에서) 기본 클래스를 갖는 것을 피하려고한다. – TomTom