Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有必要用JavaScript重写C#类吗?_Javascript_C#_Json - Fatal编程技术网

有必要用JavaScript重写C#类吗?

有必要用JavaScript重写C#类吗?,javascript,c#,json,Javascript,C#,Json,我有一个包含应用程序逻辑的项目 我已经公开了一个rest服务,该服务接受JSON输入,并将其传递到后端进行处理 我现在正在创建一个web UI,允许用户创建必要的JSON 我有C#类课程,比如 public class Template { public string TemplateName {get; set;} public List<Column> Columns {get; set;} } public class Column { public

我有一个包含应用程序逻辑的项目

我已经公开了一个rest服务,该服务接受JSON输入,并将其传递到后端进行处理

我现在正在创建一个web UI,允许用户创建必要的JSON

我有C#类课程,比如

public class Template 
{
    public string TemplateName {get; set;}
    public List<Column> Columns {get; set;}
}

public class Column
{
    public string ColumnName {get; set;}
}
我的网页上有一些文本字段,我输入信息,然后根据这些信息创建对象,然后将它们转换为JSON

    $scope.buttonClick = function () {

        var column = new Column('cName',$scope.selectedDataType,
            $scope.selectedDataType,
            $scope.selectedGenerator,
            'TEST');

        var columns = [];
        columns.push(column);

        var template = new Template($scope.TemplateName, $scope.RowCount, columns);

        var jsonbody = JSON.stringify(template);

        console.log(jsonbody);
    }

我显然在重复这里的工作,在JS中重写所有的类,这感觉是错误的。有更好的办法吗?我应该做些不同的事情吗

这要看情况而定。如果您有一个只有几个类的小应用程序,那么您可能会认为开销相对较低,而执行其他任何操作都没有好处。然而,你说感觉不对是对的。用手做任何事情都会让你接触到各种潜在的bug

正如Amy提到的,有一些影响较小的工具,比如打字机,可以让您生成等效的打字脚本

如果你的应用程序更大,你可能会发现开始使用类似的东西很有用,它可以扩展,并允许你有更多的端到端解决方案来将你的客户端应用程序链接到你的API


这两者之间有很多不同之处。

它不是JS,但Typewriter是一个VS扩展,它从C#文件生成TypeScript。JS可能也有类似的扩展。我将介绍第二个Typescript。它是javascript的超集,允许类型安全。如果采用这种方法,首选的方法是为脚本代码必须使用的每个c#类型创建一个TypeScript接口。使用工具或vs扩展直接从c#代码生成typescript接口。
    $scope.buttonClick = function () {

        var column = new Column('cName',$scope.selectedDataType,
            $scope.selectedDataType,
            $scope.selectedGenerator,
            'TEST');

        var columns = [];
        columns.push(column);

        var template = new Template($scope.TemplateName, $scope.RowCount, columns);

        var jsonbody = JSON.stringify(template);

        console.log(jsonbody);
    }