我有许多C#枚举,其中一些标记已启用。例如:JavaScript中的枚举和JSON标记
[Flags]
public enum MyEnum
{
item1 = 0x0000,
item2 = 0x0008
}
我克隆到JavaScript的这个像这样的东西:
my.namespace.MyEnum = {
ITEM1: "item1",
ITEM2: "item2"
}
我使用的是全球性的WebAPI转换映射枚举字符串,因为我喜欢与REST使用字符串API:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
的问题是,如果我创建一个使用此枚举的属性,它不能使用位运算(即my.namespace.MyEnum.ITEM1 | my.namespace.MyEnum.ITEM2)和得到d esired结果(“item1,item2”)。
除了删除字符串转换器,是否有任何适当的方式来实现这种DataContract + JS API的旗帜enum在JavaScript中?
不妨使用[] .toString(),在你的自定义方法中额外的空间对我们来说没有什么作用...... – dandavis
@dandavis:当然,你可以,但我宁愿要比这更明确。而原来的空间。 –