熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.Net Framework 2.0范型的反射使用[2]

2013-11-13 11:04:34  來源: .NET編程 

   > 還是是范型的標志

  SystemString mscorlib Version= Culture=neutral PublicKeyToken=bace >是string類型的FullName

  SystemInt mscorlib Version= Culture=neutral PublicKeyToken=bace >是int類型的FullName

  從上面的例子可以看出范型的類型和時增加了兩個部分分別是范型的標識部分和范型的參數類型FullName部分

  首先看一下標志部分 `和`猜測`標識了該類型是范型後面的數字部分是說明了該范型需要幾個范型參數

  現在還是猜測下面根據猜測來應用我們自己的反射試驗一下吧

  范型反射的試驗

  看看下面的代碼

string tlistStr = SystemCollectionsGenericList`[SystemString];

Type tList = TypeGetType(tlistStr);

Object olist = SystemActivatorCreateInstance(tList);

MethodInfo addMList = tListGetMethod(Add);

addMListInvoke(olist new object[] { zhx });

ConsoleWriteLine(olistToString());

SystemConsoleWriteLine();

string tDicStr = SystemCollectionsGenericDictionary`[[SystemString][SystemInt]];

Type tDic = TypeGetType(tDicStr);

Object oDic = ActivatorCreateInstance(tDic);

MethodInfo addMDic = tDicGetMethod(Add);

addMDicInvoke(oDic new object[] {zhx });

ConsoleWriteLine(oDicToString());

SystemConsoleWriteLine();

  測試通過不過大家要注意了范型中的基礎類型如stringint不能使用簡寫的如果把 SystemCollectionsGenericList`[SystemString] 寫成 SystemCollectionsGenericList`[string]是不能夠得到正確類型的

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15107.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.