我的基类是BasePageForm,且有很多页面继承它,例如,即public partial class Application_BaseData_CorpLevelSets:BasePageFormpublic partial class Application_BaseData_EmployeeCosts:BasePageFormpublic partial class Application_BaseData_ProductLines : BasePageForm(后面还有很多这样的页面)那么我在构造函数public BasePageForm(){}中如何判断是哪个子类被实例化呢?记录事件怎么写呢?谢谢!
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { baset t = new baset1(); baset t1 = new baset2(); } } public class baset { public baset() { //此处记录 Console.WriteLine(string.Format(" {0} constructed ", this.GetType().ToString())); } } public class baset1 :baset { public baset1() {
} } public class baset2 : baset { public baset2() {
zyug,你用这个例子教我好不好?我的基类是BasePageForm,且有很多页面继承它,例如,即 public partial class Application_BaseData_CorpLevelSets:BasePageForm public partial class Application_BaseData_EmployeeCosts:BasePageForm public partial class Application_BaseData_ProductLines : BasePageForm (后面还有很多这样的页面) 那么我在构造函数 public BasePageForm(){}中如何判断是哪个子类被实例化呢?记录事件怎么写呢?谢谢!
public BasePageForm(){//此处记录 string s = string.Format(" {0} 被实例化 ,方法调用页面 {1},从 {3} 页面转来 调用时间 {2} ", this.GetType().ToString(),HttpContext.Current.Request.Url.ToString(),System.DateTime.Now.ToString(),HttpContext.Current.Request.UrlReferrer.ToString() ); //保存此s 到你的记录中 }应该是这样吧,建议你手动写一下上面的例子,可能会深刻点
在该事件中使用xmlhttp回发到服务器并记录技术细节就这么多了对了,你的页面判断其实不要紧的,你可以统一管理的,使用httpmodule,你维护一个列表,
然后如果请求在这个列表中,你就往页面输出
<script src="record.js" />这样的字符串就可以了,至于转向来的页面用js 的document.reffer就可以了。。如果我没记错.
来判定是否需要保存,每个Button加上一个记录事件
另外,还要知道哪个类被实例化过并保存类名很简单..在构造函数中加入一个记录事件..
你也可以先写一个基类,就干这事,然后所有的类,从它继承
virtual string gettypename()
你如果是virtual.并且override 了.这个得到就是重写过的我怎么记得如果你在里面用this.getttype()是获得子类的名称的.好像这个是重写过的
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
baset t = new baset1();
baset t1 = new baset2();
}
}
public class baset
{
public baset()
{
//此处记录
Console.WriteLine(string.Format(" {0} constructed ", this.GetType().ToString()));
}
}
public class baset1 :baset
{
public baset1()
{
}
} public class baset2 : baset
{
public baset2()
{
}
}}
运行结果 ConsoleApplication1.baset1 constructed
ConsoleApplication1.baset2 constructed
请按任意键继续. . .
string s = string.Format(" {0} 被实例化 ,方法调用页面 {1},从 {3} 页面转来 调用时间 {2} ", this.GetType().ToString(),HttpContext.Current.Request.Url.ToString(),System.DateTime.Now.ToString(),HttpContext.Current.Request.UrlReferrer.ToString() );
//保存此s 到你的记录中
}应该是这样吧,建议你手动写一下上面的例子,可能会深刻点