从c#对象自动生成javascript对象模型

Tug*_*ain 18 javascript model object

寻找现有的,经过验证的解决方案,以快速生成表示现有c#对象的客户端javascript对象模型.我想有一个T4模板或其他一些方法,但我缺乏找到它的术语.我不是在谈论序列化以获取现有c#对象实例的JSON表示或与反序列化有关的任何事情.我只想为20多个c#对象生成javascript对象模型,如果c#代码发生变化,我希望能够立即重新生成它们.

我正在寻找的过度简化的例子:

C#代码:

[Serializable()] 
public class Cat 
{ 
    public string Name { get; set; }
    public string Breed { get; set; }
} 
Run Code Online (Sandbox Code Playgroud)

要生成的Javascript对象模型:

function Cat() 
{ 
    this.Name = ""; 
    this.Breed = ""; 
} 
Run Code Online (Sandbox Code Playgroud)

@Baszz

JSON是一个基于文本的数据交换标准,这不是我想要的.我需要生成一个20多个对象的客户端API,我可以将其放在一个javascript文件中,并将该脚本链接到我的各种网页.

JavaScriptSerializer可以从ac#object吐出如下所示的字符串:

{ "Name": "Hayden", "Breed": "Rabbit” } 
Run Code Online (Sandbox Code Playgroud)

但这与以下内容不同:

function Cat()  
{  
    this.Name = "";  
    this.Breed = "";  
}  
Run Code Online (Sandbox Code Playgroud)
  1. JSON字符串不是命名函数.
  2. 引用所有元素并采用JSON格式,这需要手动解析字符串以使其成为我需要的格式.
  3. 由于#1,你不能像下面那样新建一个Cat实例

var myCat = new Cat();

没有很多评论,所以我猜大家都是手工做或不做.看看创建我自己的T4模板来解析c#文件并生成我的客户端API.

Tug*_*ain 6

经过无数次的搜索,我找不到任何接近我正在寻找的东西.很显然,过去几年里每个人都被JSON的热门话题所吸引,没有人会自动生成客户端对象模型.我看了Codesmith和T4模板.没有任何内置的机制来解析代码文件.两者都要求你跳到反射中以获得属性及其类型,它们在开发人员的肩膀上占有100%的份额.一旦你跳过编写所有反射代码,Codesmith或T4模板给你带来什么好处,这就引出了一个问题?绝对没有..你还要介意将你的反射代码放在一个可重用的类库中,并从控制台应用程序调用它,这正是我所做的.