日期:2014-05-18  浏览次数:20745 次

关于反射的问题,哪位大哥帮忙下!!!
国际惯例,先贴出代码!!!
C# code

ERMS.Package.MetadataID.M1
ERMS.Package.MetadataID.M2
ERMS.Package.MetadataID.M3
ERMS.Package.MetadataID.M4
ERMS.Package.MetadataID.M5
....//从M1一直到M88
ERMS.Package.MetadataID.M88


这个是一个DLL里面的一个类属性。。

现在问题来了。。我有一堆string Mx的变量,,,它们的数值都是等于(M1,M5,M9,M22,M46...)等等,现在我想通过这些变量的数值调用对应的ERMS.Package.MetadataID.M?? ,,,,请问一定要用如下的办法吗??
C# code

if(Mx=="M1")
ERMS.Package.MetadataID.M1;
if(Mx=="M2")
ERMS.Package.MetadataID.M2;
if(Mx=="M3")
ERMS.Package.MetadataID.M3;
if(Mx=="M4")
ERMS.Package.MetadataID.M4;
...//88次


能不能用个循环??听说有个“反射”的方法,但看了相关的资料,也不是很懂。怎么用?

------解决方案--------------------
Quote=引用:]
是enum,如下:
namespace ERMS.Package
{
public enum MetadataID
{
...
....


引用:

你看看MetadataID的定义是什么?class还是enum?
[/Quote]

那我想你的意思应该是这样:
C# code

string Mx = "M15";
ERMS.Package.MetadataID metadataID = (ERMS.Package.MetadataID)Enum.Parse(typeof(ERMS.Package.MetadataID), Mx);
entity.Content.Add(metadataID, "001");