我正在编写一个运行“事物”到时间表的应用程序。

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

除了参数外,其他一切都很好。

因此,可以说该方法接受一个CustomerType的ENUM,其中CustomerType具有两个值CustomerType.Master和CustomerType.Associate。

编辑
我不知道将要传递的参数类型。以ENUM为例
结束编辑

我们要运行方法“X”并传递参数“CustomerType.Master”。在数据库中,将有一个“CustomerType.Master”的varchar条目。

如何将字符串“CustomerType.Master”转换为类型为“Master”的CustomerType类型?

提前致谢,

吉姆

最佳答案

我认为您有2种主要选择:

  • 将类型名称与参数值一起存储,并使用它来使用Type.GetType(string)强制转换类型以解决相关类型。
  • 标准化将以这种方式调用的所有方法,以接受字符串数组,并期望这些方法进行任何必要的强制转换。

  • 我知道您已经声明您没有执行选项1,但是从调用函数的角度来看,这将有所帮助。

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

    10-05 18:05