从C#dto类生成javascript对象

时间:2014-04-01 18:43:14

标签: c# javascript

在我的spa应用程序中同步服务器poco / dto对象定义的最佳方法是什么? 所以,如果我有一个带有地址列表的类,那么在客户端上我们希望有一个对象模板,我们可以用它来创建一个地址实例插入到地址列表中。显然,我们的对象图更大,并且在开发过程中发生了很大变化,因此手动保持这些事情并不是一个成功的解决方案。

c#dto class

puclic class dto{
dto()
{
 addressList = new List<address>();
}
 puclic List<address> addresses {get;set;}
 public string otherField{get;set;}
}

public class address{
 public string street{get;set;}
 public string city {get;set;}
}

javascript对象

var AddressClass = function(){
 this.street ="";
 this.city = "";
};

var Dto = function(){
 this.addressList = [];
 this.otherField = "";
};

在范围内的一些地方添加到addressList数组

$scope.dtoClass.AddressList.push (new AddressClass() );

所以目标是服务器上的地址类和客户端上的addressClass。

2 个答案:

答案 0 :(得分:1)

sharp2Js是一个小型库,可以创建镜像C#POCO类的javascript对象,可以很容易地使用T4模板生成js文件

这是github https://github.com/castle-it/sharp2Js

上的网址

答案 1 :(得分:0)

您可能需要查看Automapper并创建转换器,以便在发送之前转换您的C#对象图,以便它与客户端上的javascript对象相匹配。

我建议根据你的评论“显然我们的对象图表更大,并且在开发过程中发生了很大的变化,因此手动保持这些事情并不是一个成功的解决方案。”这将隔离您的转换器以减少C#对象图形大小,然后转移到javascript到一个可单元测试的位置。

除非我完全误解你想要的东西。