제가Html 헬퍼 할당되지 <ChildType>는 <MotherType>
SearchViewData: CommonViewData
이보기에서는 I 따라서 HTML로 참조가 도면
ViewUserControl<SearchViewData>
Html 헬퍼가있다.
이 (Html 헬퍼 매개 변수의 유형을주의) HtmlHelper<SearchViewData>
은 내가이 원하는 CommonHtmlHelper라는 사용자 지정 Html 헬퍼 클래스를 만드는 유형이다 : SearchViewData이 CommonViewData에서 상속 때문에
public static SelectList TranslatedApplicationSelectList(this HtmlHelper<CommonViewData> htmlHelper, string selectedCode)
을 내 HTML은이다 형식 HtmlHelper < SearchViewData> 따라서 HtmlHelper < CommonViewData>입니다.
그러나 TranslatedApplicationSelectList 메서드에 액세스하려고하면 내 뷰에서 HtmlHelper < SearchViewData>를 HtmlHelper에 할당 할 수 없다는 오류가 발생합니다. < CommonViewData>.
내 OO 논리에 결함이 있습니까? 이것은 C#이 제네릭에서 상속을 처리하는 방법의 한계입니까 (Skeet이 내게 이것을 설명했지만 더 이상 해당 게시물을 찾을 수 없음).
그리고 무엇보다도 어떻게 수정해야합니까?
예, 사람들이했던 일을 설명 John Skeet에 의해 나에게 일찍부터. 나는 이것이 내 문제의 이유라고 느꼈지만 확신 할 수 없었고 조건을 모르고서 다시 질문을 찾을 수 없었다. 그래서 내 문제에 대한 유일한 해결책은 HtmlHelper를 허용하는 메소드를 작성하고 다른 유형에서이를 수행하려는 경우 다른 메소드를 작성하는 것입니다. S generic 유형을 "캐스팅"하는 구문도 없습니다 받아 들일 수 있을까요? 정규 캐스트와 마찬가지로 프로그래머에게 책임을 물을 것입니다. –