2010-11-12 10 views
12

Co jest punktemDlaczego WebViewPage w MVC3 jest abstrakcyjny?

public class ThemedViewPage<T> : WebViewPage<T> 
{ 
    public override void Execute() 
    { 

    } 
} 

Co mam z nim zrobić? Pytam, ponieważ zostawiłem go pustym, a świat jest dobrym miejscem i wszystko wygląda na to, że działa - po prostu aktualizuję wersję demonstracyjną, którą prowadzę dziś po południu i jest to pytanie, które prawdopodobnie zostanie mi zadane.

+5

Najlepszym rozwiązaniem jest również zadeklarowanie klasy jako abstrakcyjnej i * nie * w ogóle nadpisanie metody Execute(). – Eilon

+0

Dobra uwaga, w połączeniu z odpowiedzią poniżej, która ma sens –

Odpowiedz

11

Brzytwa działa, generując klasę dziedziczącą po klasie bazowej. Domyślna klasa, z której pochodzi, to WebViewPage<T>. Po wyrażeniu @inherits ThemedViewPage<Something> mówisz generatorowi kodu, aby utworzył klasę, która następnie dziedziczy po ThemedViewPage<Something>.

W rzeczywistości nie zaimplementowano metody Execute jako parser Razor generującej tę metodę. Warto przeczytać: Andrew Nurse's Blog, Ben @ BuildStarted's Blog, a może nawet my own, ponieważ ostatnio pracowaliśmy nad budowaniem samodzielnego urządzenia do obróbki szablonów, więc musieliśmy się dowiedzieć, jak to wszystko działało wewnętrznie.

+0

Fajna - to wystarczająco dobre dla mnie, skąpa dokumentacja, ale chciałem, aby ta rozmowa była aktualna. –

+0

Czy muszę "@ dziedziczy" w każdym widoku. Czy nie jest * dziedziczone * z _out? –

+1

Cztery lata za późno, ale nie, nie jest dziedziczone z układu. – Casey

Powiązane problemy