我想将我用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; }
}我希望能够在javascript中自动生成这个类的一个版本
// javascript class to represent an Appraiser
function Appraiser(appraiserId, appraiserName) {
var self = this;
self.appraiserid= appraiserId;
self.appraisername= appraisername;
}这可以用JSON.NET或其他方法实现吗?
发布于 2015-01-22 22:25:02
我知道这是个老生常谈的问题,但现在有几个选择。
有一个用于Visual Studio的Class to Knockout Generator,它将为您创建淘汰型视图模型。此外,如果你开始使用Typescript -在一个类上使用Web Essentials的"Generate Typescript“选项会让你很容易做到这一点。
发布于 2015-10-23 10:10:54
你可以试试sharp2Js。您向它传递一个类型,它会将其转换为C#字符串。如果希望将其输出到js文件,请将其与T4模板一起使用。对于示例中的类,它会生成:
在您的示例中使用它:
var str = Castle.Sharp2Js.JsGenerator.
GenerateJsModelFromTypeWithDescendants(typeof(Appraiser), true, "example");输出:
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;
}
}注意:我是sharp2Js的维护者,它很年轻,所以功能还不是很丰富(欢迎提出任何建议),但它可能适合您的简单使用需求。
发布于 2013-02-13 06:17:39
你可以试试JSIL。它将允许您从.Net IL转换到JavaScript。
https://stackoverflow.com/questions/14841465
复制相似问题