专家来问专家的问题,关于attribute实例化的问题
都说attribute是在编译的时候实例化的,那么我想在一个方法前面加上一个自定义的attribute,然后在编译的时候来判断整体代码是否符合编程的规范,后来我就在自定义的attribute里面向数据库里写了段代码,目的是测试看看他有没有在编译的时候执行了?可以结果没有,设置断点也没有,我的代码如下
[AttributeUsage(AttributeTargets.Class)]
public class TestAttribute : System.Attribute
{
public TestAttribute(string str)
{
//
// TODO: Add constructor logic here
//
System.Data.SqlClient.SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=(local);UID=sa;Password=;database=myDB;Connection Reset=FALSE ";
if(conn.State==System.Data.ConnectionState.Closed)
conn.Open();
try
{
string strSQL1 = "insert into class(classname,point) values( ' " + DateTime.Now.ToString() + " ', 'asdf ') ";
SqlCommand cmd = new SqlCommand(strSQL1,conn);
cmd.CommandText = strSQL1;
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
}
finally
{
conn.Close();
}
}
}
请问他到底在什么时候才会执行呢?
------解决方案--------------------mark
------解决方案--------------------有点深澳
------解决方案--------------------用法错了 改成
[Test( "asdf ")]
public class WebForm1 : System.Web.UI.Page
{
------解决方案--------------------都说attribute是在编译的时候实例化的.......测试看看他有没有在编译的时候执行了
——————————————————————————————————————————
不知道是什么意思?如果你确实学过点编译编译技术原理的话,你见过编译的时候实例化的代码吗?我没有见过,而且用这个搜索也没有什么结果,说明纯粹是你自己发明的这个概念。
关于实例代码,可以参考:
http://www.google.com/search?q=getcustomattribute&hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&lr=lang_zh-CN%7Clang_zh-TW&nxpt=20.171009450670488463555
http://www.google.com/search?q=getcustomattributes&hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&lr=lang_zh-CN%7Clang_zh-TW&nxpt=20.687107868704945863584
------解决方案--------------------自定义属性只是在编译时序列化
------解决方案--------------------序列化
反序列化
2米托福,3在3在.不是专家,不回答