日期:2014-05-19  浏览次数:20514 次

专家来问专家的问题,关于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在.不是专家,不回答