2012-07-17 4 views
2

면도기 WebViewPage를 상속하고 싶습니다. 모든보기에 대해 실행하고 싶은 일부 공통 코드가 있고 특정 모델에 기반한보기에 일부 실행되기 때문입니다.2 개의 상속 된 면도기보기간에 공통적으로 공유

나는 2 개 상속 클래스

public abstract class TemplateEngine : WebViewPage { 
///...code 
} 

그리고

public abstract class TemplateEngine<TModel> : WebViewPage<TModel> { 
    ///...code 
} 

이 내가보기 유형에 관계없이 사용하려면 몇 가지 코드있다 - 강력한 형식의 여부, 그리고 일부 특정는 강력하게 형식화 된 뷰. 본질적으로 강력하게 유형이 지정된 상속 된 뷰에서 일반 상속 된 뷰에서 작성한 모든 코드에 액세스 할 수 있기를 원합니다.

일부 기본 개념이 없으면 궁금합니다. 그래서 어떤 포인터가 좋을 것입니다.

고맙습니다.

답변

1

이것은 내가하는 방법입니다. 유형이 지정되지 않은 클래스는 유형이 동적 인 내 입력 된 클래스를 상속합니다. 유형이없는 클래스에서는 새로운 것을 정의하지 않습니다. 왜냐하면 그것이 원하는 모든 것을 상속 받기 때문입니다. 확실하지 내가 어디 ... 그것은 내가 이상적으로 원하는 것 무엇 역의 종류의 내 입력 된을

<pages pageBaseType="CxLib.Web.CxWebView"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="System.Data" /> 
    <add namespace="System.Data.Entity" /> 
    </namespaces> 
</pages> 
+0

을 CxWebView하는 기본 유형을 설정 최고의 내보기에

abstract public class CxWebView<T> : WebViewPage<T> { /* all of the methods & properties I want available in every view */ } abstract public class CxWebView : CxWebView<dynamic> { } 

/Web.config의가 있다고 클래스는 타입이없는 클래스에서 상속받습니다. 문제는 필자의 입력 된 클래스에는 일부 페이지에서만 사용되는 특수한보기 특정 코드가 많이 있다는 것입니다. – jeremy

관련 문제