将C#enum自动翻译为JavaScript

时间:2009-07-28 20:14:34

标签: c# javascript asp.net reflection code-translation

我在.NET程序集中有一个标记枚举,它从ASP.NET页面调用。我希望有一个Visual Studio构建步骤生成一个.js文件,其中包含JavaScript等效文件。这样做有什么工具吗?


编辑:这似乎有效。

public class JavaScriptReflection
{
    public static string Go(Type type)
    {
        if (!type.IsEnum) return;

        StringBuilder sb = new StringBuilder();
        sb.AppendFormat("var {0} = {{ ", type.Name);

        foreach (FieldInfo fInfo in 
            type.GetFields(BindingFlags.Public | BindingFlags.Static))

            sb.AppendFormat("{0}:{1},\r\n", 
                fInfo.Name,
                fInfo.GetRawConstantValue().ToString());

        sb.Append("};");
        return sb.toString();
    }
}

2 个答案:

答案 0 :(得分:1)

Script#是值得研究的一件事。

答案 1 :(得分:0)

我最近使用输出汇编文件的反射来生成代码。

尝试在您可以从构建后的过程中调用的控制台应用程序中使用此类内容:

Assembly assembly = Assembly.LoadFile("FileName");
Type myEnumType = assembly.GetType("EnumName");
foreach(MemberInfo mi in myEnumType.GetMembers().Where(m => m.MemberType == MemberTypes.Field))
        Console.WriteLine(mi.Name);