C#中的反射和参数

BID*_*per 5 c# reflection

我正在编写一个运行"事物"的应用程序.

想法是数据库包含程序集,方法信息以及参数值.计时器将出现,反映要运行的方法,添加参数然后执行方法.

除参数外,一切都很好.

因此,假设该方法接受CustomerType的ENUM,其中CustomerType具有CustomerType.Master和CustomerType.Associate两个值.

编辑 我不知道将传入的参数类型.ENUM用作示例 END OF EDIT

我们想要运行方法"X"并传入参数"CustomerType.Master".在数据库中,将存在"CustomerType.Master"的varchar条目.

如何将字符串"CustomerType.Master"转换为一般类型为"Master"的CustomerType?

提前致谢,

吉姆

Sam*_*win 1

我认为你有两个主要选择:

  1. 将类型名称与参数值一起存储,并使用它来转换事物Type.GetType(string)以解析有问题的类型。
  2. 标准化以这种方式调用的所有方法以接受字符串数组,并期望这些方法执行任何必要的转换。

我知道您已经说过您没有执行选项 1,但从调用函数的角度来看,它会有所帮助。

选项 2 是处理这种情况的更为“通用”的方法,假设所有值都可以由字符串表示并从字符串转换/转换为适当的类型。当然,只有当您真正控制所调用方法的定义时,这才有帮助。