首先先開一個類別檔(或製作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類別