CS中的模板几乎遍布整个应用,当我们利用SDK做二次开发的时候,我们需要很长的熟悉过程,而这个过程大部分时间被烦躁的检索所占据,检索模板、检索类文件,检索类文件我们可以使用类视图快速定位到类所在的文件。然而确定需要修改的模板或需要修改的类却不是那么方便的事情。CS在这里为我们做了一些工作,但并不是特别方便,按照下面的方法即可直观的找到需要修改的文件。
在CS中,如果是调试项目,在生成的HTML代码里会嵌入页面所使用的模板的类名及模板文件路径,但它是以HTML注释的方式体现出来的,我们要确定某个模块的信息还需要查看源文件并繁琐的检索,这里我们只需要稍微改造一下便能让这些注释更直观一眼就可以快速了解模块的相关信息。
让我们打开"src"Controls"BaseClasses"TemplatedWebControl.cs和"src"Controls"BaseClasses"SkinnedWebControl.cs这两个文件,这两个类是系统模板控件的基类,它们都有这样一个方法:
[System.Diagnostics.Conditional("DEBUG")]
protected void SourceMarker(bool isStart, HtmlTextWriter writer)
{
if(isStart)
{
writer.WriteLine("<!-- Start: {0} -->", this.GetType());
if(System.IO.File.Exists(HttpContext.Current.Server.MapPath(this.SkinPath)))
writer.WriteLine("<!-- Skin Path: {0} -->", this.SkinPath);
else if(SkinTemplate != null)
writer.WriteLine("<!-- Inline Skin: {0} -->", true);
else
writer.WriteLine("<!-- Skin Path: {0} -->", this.DefaultSkinPath);
}
else