C#反射機制

1.新建一個控制檯程序  名稱:ConsoleApplication5

2新建一個IName有接口寫一個 ShowName()方法

 

using System;

namespace ConsoleApplication5
{
    
/// <summary>
    
/// IName 的摘要說明。
    
/// </summary>

    public interface IName
    
{
        
void ShowName();
    }

}

3寫一個 ChineseName 類並繼承 IName 實現 ShowName()方法

 

using System;

namespace ConsoleApplication5
{
    
/// <summary>
    
/// ChineseName 的摘要說明。
    
/// </summary>

    public class ChineseName:IName
    
{
        
        
IName 成員
    }

}

4.寫一個 EnglishName 類 並繼承 IName 實現 ShowName()方法

 

using System;

namespace ConsoleApplication5
{
    
/**//// <summary>
    
/// EnglishName 的摘要說明。
    
/// </summary>

    public class EnglishName:IName
    
{
        
IName 成員
    }

}

 

5.再寫一個 AbstractFactory類用於反射  [引入:System.Reflection;命名空間]

 

using System;
using System.Reflection;
namespace ConsoleApplication5
{
    
/// <summary>
    
/// AbstractFactory 的摘要說明。
    
/// </summary>

    public class AbstractFactory
    
{
        
public static IName GetName()
        
{
            
string str="ConsoleApplication5.ChineseName";
            IName name
=(IName)Assembly.Load("ConsoleApplication5").CreateInstance(str);
            
return name;
        }

    }

}

 

6.最後在主程序中調用

 

using System;

namespace ConsoleApplication5
{
    
/// <summary>
    
/// Class1 的摘要說明。
    
/// </summary>

    class Class1
    
{
        
/// <summary>
        
/// 應用程序的主入口點。
        
/// </summary>

        [STAThread]
        
static void Main(string[] args)
        
{
            IName name
=AbstractFactory.GetName();
            name.ShowName();
        }

    }

}

發佈了38 篇原創文章 · 獲贊 3 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章