我想创建一个扩展方法,将任何枚举转换为Json字符串。我可以扩展Enum a la Enum.GetValues()吗?
我想能够附加一个扩展方法给枚举,我可以通过枚举类型,以便它可以调用Enum
调用Enum.GetValues(Type enumType)
,所以它可能看起来像:
Enum.ToJsonString(Type enumType)
看来,这是不可能的 - 枚举是一个抽象类;你怎么能延长这一点? - 而且我将不得不创建自己的静态类型来实现这一点。
任何人都可以证实我不能扩展Enum这种方式(请解释,技术上,为什么),或告诉我怎么可以?
澄清(更新)
我知道我可以用我自己的静态类型做到这一点。例如,创建EnumExtensions.ToJsonString(Type enumType)
相当容易,但我宁愿将方法与GetValues()等一起列出,并使用VS intellisence自动完成。
你的意思是任何枚举或任何枚举*值*?扩展方法总是显示为* instance *方法,而不是静态方法。了解更多关于你希望你的方法做什么以及如何调用它的信息会很有用。 –
我的意思是任何枚举。我希望能够将任何枚举的所有可能值转换为带有名称/散列码作为json中的键/值对象的json字符串。 – Faust