程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 反射獲取Attribute標簽

反射獲取Attribute標簽

編輯:.NET實例教程

這裡傳的只是字符串,當給構造函數傳對象時就編譯出錯。說是需要是常量表達式、typeof表達式、數組創建表達式。



namespace TestAttribute
...{
    [AttributeUsage(AttributeTargets.All)]
    public class PrimaryKeyAttribute : Attribute 
    ...{
        public string mappingName;

        public string MappingName 
        ...{
            get ...{ return mappingName; }
            set ...{ mappingName = value; }
        }

        public PrimaryKeyAttribute(string mappingName) 
   ...{
            this.mappingName = mappingName;
        }

    }

    public class TestAttribute 
    ...{
        private string customerID;
        private string companyName;

        [PrimaryKey("MyCustomerID")]
        public string CustomerID 
        ...{
            get ...{ return customerID; }
            set ...{ customerID = value; }
        }
        [PrimaryKey("MyCompanyName")]
        public string CompanyName 
        ...{
            get ...{ return companyName; }
            set ...{ companyName = value; }
        }
    }
    public partial class Form1 : Form
    ...{
        public Form1()
        ...{
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
   ...{
            TestAttribute ta = new TestAttribute();
            PropertyInfo[] p = ta.GetType().GetPropertIEs();
            foreach (PropertyInfo pi in p) 
            ...{
                object[] os = pi.GetCustomAttributes(false);
                foreach (object o in os) 
                ...{
                    MessageBox.Show(o.GetType().GetProperty("MappingName").GetValue(o,null).ToString());
                }
            }
        }
    }
}

以前做過,長時間不搞就忘了。昨天忽然有了這個需求,花了一天時間終於又搞清楚了方法,在這裡做一個備忘。
  首先需要安裝用於存放會話的數據庫,當然,MS在.net Framework中已經提供了現成的工具。在類似於:C:\Windows\Microsoft.Net\Framework\v2.0.50727文件夾下可以找到InstallSqlState.sql 文件,這其實是一個文本文件,裡面存放著用於創建“會話數據庫”的腳本,只需要把它們復制到查詢分析器中,運行就可以了。提示成功後,會在相應的數據庫中生成名稱為ASPState的數據庫。
  配置文件做相應的變動:


<sessionState 
            mode="SQlServer"
            stateConnectionString=tpip=127.0.0.1:42424"
            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
            cookIEless="false" 
            timeout="20" 
    />  即將mode由“Inproc”改為“SQLServer”。
  我以前安裝的是1.1版本的數據庫,對於.net2.0的程序無法正常使用,需要先刪除舊版的數據庫重新安裝新版就行了。刪除的方法也是采用MS提供的工具,這個工具也可在同樣的文件夾下找到UnInstallSqlState.sql文件,在查詢分析器運行其中的腳本。對於適合.Net的版本,是兼容1.1的。
  另外,對於數據庫連接字串,最好采取信任連接。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved