天天看點

asp.net MVC中怎樣讓LINQ Designer自動生成的類從别的類繼承并調用其基類構造器?

繼承是比較簡單的,比如在Designer.cs中有一個類叫 Text100,可以在Text.cs中直接寫:

[csharp] view plaincopy  

01.public class Text //這個就是基類    

02.{    

03.    private int _length = 0;    

04.        

05.    public Text(int length)    

06.    {    

07.        _length = length;    

08.    }    

09.}    

01.public partial class Text100 : Text //這個就是已經在Designer中聲明過的LINQ類    

03.    .... //在這裡不能再寫構造器了,因為Designer.cs裡邊寫過了    

04.}    

這裡不能調用其基類構造器,但可以調用partial void OnCreate()(在Deisigner.cs裡邊聲明的)來完成構造器想完成的工作。最終結果是:

03.private int _length = 0;    

04.    

05.//public Text(int length) //這個好像應該注釋掉,否則總是被調用。沒試過留着它的情況。    

06.//{    

07.//_length = length;    

08.//}    

10.    

11.public partial class Text100 : Text //這個就是已經在Designer中聲明過的LINQ類    

12.{    

13.    void OnCreate() //在這裡把本來調用構造器的工作做完。    

14.    {    

15.        _length = 100;    

16.    }    

17.}    

這個OnCreate()在Text100的定義中有一個partial 版本,是Text100的構造器中的唯一一句話(在designer.cs中可找到),換言之就是來解決基類構造問題的。

這種自動生成的類還有很多On...函數,可以解決其他基類調用問題。

本文轉自火星人陳勇 51CTO部落格,原文連結:http://blog.51cto.com/cheny/1100103

繼續閱讀