首先先開一個類別檔(或製作dll)

*dll部,則是先開一個函式庫的專案(專案名稱AssemblySample),先將下面類別程式內容建置後,取得dll檔即可,dll檔名和namespace預設與專案名稱相同

--類別程式內容如下--

namespace AssemblySample
{
    public interface IPrintBase
    {
        string CusName
        {  
            get;
            set;
        }
    }
    public class CPrintBB:IPrintBase
    {
        //Defaut Value
        string _CusName = "BB";
        public string CusName
        {
            get { return _CusName; }
            set { _CusName = value; }
        }
    }
    public class CPrintHC:IPrintBase
    {
        //Defaut Value
        string _CusName= "HC";
        public string CusName
        {
            get    {  return _CusName;  }
            set    { _CusName = value; }
        }
    }
}

 

---接著用Console專案來測試---

    class Program
    {
        static void Main(string[] args)
        {
            IPrintBase x;
            string AssemblyName = "AssemblySample"//類別檔案的 namespace ,或是dll的檔名(請看文章一開始的說明)
            string ClassName = "
AssemblySample.CPrintHC"; //類別名稱可以和view的ComboBox 結合
            x = (IPrintBase)Assembly.Load(AssemblyName).CreateInstance(ClassName);
            Console.WriteLine (x.CusName ); // print HC
            x.CusName = "HC1";
            Console.Write(x.CusName); // print HC1
            Console.Read();
        }
    }

可以藉由Assembly來取得我們要的類別實體,可以省下用switch或 if else分支判斷

以取得我們想要的類別物件,進而實作多型!

參考MSDN Assembly類別

arrow
arrow
    全站熱搜

    Ryan 發表在 痞客邦 留言(0) 人氣()