【发布时间】:2014-03-18 04:43:54
【问题描述】:
我想创建一个将任何枚举转换为 Json 字符串的扩展方法。
我希望能够将扩展方法附加到 Enum 中,我可以将枚举类型传递到其中,以便可以在 Enum 上调用它,就像你可以调用 Enum.GetValues(Type enumType) 一样,所以它可能看起来像:
Enum.ToJsonString(Type enumType)
这似乎是不可能的——Enum是一个抽象类;你怎么能延长它? -- 而且我必须创建自己的静态类型来实现它。
谁能确认我不能以这种方式扩展 Enum(请从技术上解释为什么),或者告诉我该怎么做?
澄清(更新)
我知道我可以用我自己的静态类型来做到这一点。例如,创建EnumExtensions.ToJsonString(Type enumType) 相当容易,但我宁愿将方法与 GetValues() 等一起列出,并使用 VS 智能自动完成。
【问题讨论】:
-
你是指任何枚举,还是任何枚举值?扩展方法总是看起来好像它们是 instance 方法,而不是静态方法。了解更多关于您希望您的方法做什么以及如何调用它会很有用。
-
我的意思是任何枚举。我希望能够将任何枚举的所有可能值转换为 json 字符串,其中名称/哈希码作为 json 中的键/值对象。
标签: c#