Mr.*_*ung 6 javascript c# code-generation json.net
我想将我用C#编写的类暴露给javascript等价物.
例如,我有一个类:
// C# class to represent an Appriaser
public class Appraiser
{
public Appraiser(appraiserId, appraiserName)
{
AppraiserId = appraiserId;
AppraiserName = appraiserName;
}
public int AppraiserId { get; set; }
public string AppraiserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在javascript中自动生成此类的一个版本
// javascript class to represent an Appraiser
function Appraiser(appraiserId, appraiserName) {
var self = this;
self.appraiserid= appraiserId;
self.appraisername= appraisername;
}
Run Code Online (Sandbox Code Playgroud)
这可能与JSON.NET或其他方法有关吗?
你可以尝试Sharp2Js。您向它传递一个类型,它会将其转换为 C# 字符串。T4如果您希望它输出到 js 文件,请将其与模板一起使用。对于您示例中的类,它会生成:
将其与您的示例一起使用:
var str = Castle.Sharp2Js.JsGenerator.
GenerateJsModelFromTypeWithDescendants(typeof(Appraiser), true, "example");
Run Code Online (Sandbox Code Playgroud)
输出:
example = {};
example.Appraiser = function (cons, overrideObj) {
if (!overrideObj) { overrideObj = { }; }
if (!cons) { cons = { }; }
var i, length;
this.appraiserId = cons.appraiserId;
this.appraiserName = cons.appraiserName;
this.$merge = function (mergeObj) {
if (!mergeObj) { mergeObj = { }; }
this.appraiserId = mergeObj.appraiserId;
this.appraiserName = mergeObj.appraiserName;
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我是 的维护者sharp2Js,它还很年轻,所以功能还不丰富(欢迎任何建议),但它可能适合您简单使用的需求。
我知道我正在解决一个老问题,但现在有几个选择。
Visual Studio有一个用于淘汰赛生成器的类,它将为您创建淘汰赛视图模型。另外,如果您开始使用 Typescript - 在课程上使用 Web Essentials 的“生成 Typescript”选项将会帮助您取得很多进展。