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

2024-04-04

寻找现有的、经过验证的解决方案来快速生成客户端JavaScript 对象模型代表一个现有的 C# 对象。我想象有一个 T4 模板或其他一些方法,但我缺乏找到它的术语。我不是在讨论序列化以获取现有 C# 对象实例的 JSON 表示形式或任何与反序列化有关的内容。我只是想为 20 多个 c# 对象生成 javascript 对象模型,并且希望能够在 c# 代码更改时立即重新生成它们。

我正在寻找的过于简单的例子:

C# code:

[Serializable()] 
public class Cat 
{ 
    public string Name { get; set; }
    public string Breed { get; set; }
} 

要生成的 Javascript 对象模型:

function Cat() 
{ 
    this.Name = ""; 
    this.Breed = ""; 
} 

@Baszz

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

JavaScriptSerializer 可以从 C# 对象中吐出如下所示的字符串:

{ "Name": "Hayden", "Breed": "Rabbit” } 

但这与以下内容不同:

function Cat()  
{  
    this.Name = "";  
    this.Breed = "";  
}  
  1. JSON 字符串不是命名函数。
  2. 所有元素都被引用并采用 JSON 格式,这需要手动解析字符串才能将其转换为我需要的格式。
  3. 你不能像下面这样新建一个 Cat 实例,因为 #1

var myCat = new Cat();

评论不多,所以我猜每个人都会手动执行此操作或根本不执行此操作。考虑创建我自己的 T4 模板来解析 C# 文件并生成我的客户端 API。


经过无数次搜索后,我找不到任何接近我要找的东西。显然,过去几年每个人都沉迷于 JSON 流行词,没有人自动生成客户端对象模型。我查看了 Codesmith 和 T4 模板。两者都没有任何内置的解析代码文件的机制。两者都要求您进行反思以获取属性及其类型,这 100% 取决于开发人员的责任。一旦您跳过编写所有反射代码的环节,这就引出了一个问题,Codesmith 或 T4 模板给您带来了什么好处?绝对没有。您介意将反射代码放在可重用的类库中并从控制台应用程序调用它,这正是我所做的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C# 对象自动生成 javascript 对象模型 的相关文章

  • 如何清除ember js中的表单数据

    嗨 我对 ember js 很陌生 我写了一个新员工入职表格 并通过路线发送数据 数据保存成功 但问题是提交表单后我的表单数据没有清除 代码如下 app js App Router map function this resource sa
  • Javascript - 模板字符串不能漂亮地打印对象

    我可以使用 ES6 模板字符串来漂亮地打印 javascript 对象吗 这是来自 React Native 项目 其中console log 输出到 Chrome 调试工具 我想要的是 const description App open
  • 修复 JSLint“意外的‘this’。”错误?

    我试图让以下代码成为符合 jslint 标准 http jslint com 但我陷入以下两个错误 本来应该看到一个声明 结果却看到了一个块 and 意想不到的 这个 我应该对我的代码进行哪些更改才能使 JSLint 满意 var pvAc
  • 在网页上写乐谱[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在网页中编写乐谱和和弦 有没有可用的库 例如用于数学的 Mathjax 如果没有 那么还有其
  • Iphone 上的 Javascript 日期解析

    我正在开发一个针对移动设备的离线 Javascript 网站 iPhone 就是这样的一种移动设备 我正在尝试从 REST API JSON 对象的成员 解析日期 我在用着 Date parse 2010 03 15 10 30 00 这适
  • 使用 Intern 测试自定义 JavaScript(不是 Node 模块)

    是否可以为自定义客户端创建和运行测试套件 JavaScript 不是作为 Node 模块创建的 应该如何 那么配置要改吗 Intern 配置中有 loader 部分 指定了 如果我做对了 将会加载的包 是否有必要 以某种方式在这里包含我的自
  • Node 和 General 中的 MVC:模型如何与视图绑定?

    我从 node js 开始 正在制作一个简单的 MVC 框架 到目前为止 我已经有一个前端控制器 或 调度程序 如果你愿意的话 可以工作 路由通过调度程序配置模块进行 如图所示 我的问题在最后 紧接代码之后 另外 这是学习node的练习 请
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • Ng Bootstrap 日期范围选择器 [markDisabled] 不适用于输入

    我正在尝试禁用某些日期ng 引导范围选择器 https ng bootstrap github io components datepicker overview 目前 我在弹出窗口中有一个范围选择器 并且我正在使用 markDisable
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc
  • 在 Typescript 中从基类创建子类的新实例[重复]

    这个问题在这里已经有答案了 我想创建新实例Child班级来自Base类方法 这有点复杂 但我会尽力解释 这是一个例子 class Base constructor clone Here i want to create new instan
  • Antd 选择搜索框未呈现匹配项

    我有产品数据 我正在使用搜索值过滤数据 然后使用过滤后的数据呈现选项 产品数据作为道具来自全局 redux 存储 由于某种原因 下拉列表仅在搜索值为空时显示数据 当我开始输入时 filteredData已更新 组件也重新渲染 但选项不显示任
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • Javascript - 对父母调用 super 父母?

    我在 Odoo 中定义了当前自定义 javascript 视图的扩展 openerp account move journal test function instance var t instance web t lt instance
  • FB.getLoginStatus() 不起作用

    我正在尝试编写一段代码来检查用户是否登录 发现FBJS API中有一个内置方法 叫做getLoginStatus 我已经在html中实现了它 但出于某种原因 getLoginStatus 内部的alert 不会被触发 我也尝试在 init
  • TinyMCE:将 CSS 类属性与 formatselect-dropdown 格式结合使用

    我想定制格式 http wiki moxiecode com index php TinyMCE Configuration theme advanced blockformats在 TinyMCE 中格式选择下拉菜单 http wiki
  • 如何缩放到高图中的特定点

    Highmaps highcharts 是一个 javascript jquery 适配器 可在浏览器等中呈现地图 我有一张突出显示单个国家 地区的地图 但是 世界 地图的比例如此之大 因此我想在将地图加载到相关国家 地区后进行放大 看看
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj
  • 类型错误:无法读取未定义的属性“长度” - 使用安全帽部署时

    我在尝试在安全帽开发链上部署模拟合约时收到以下错误 我正在关注 使用 JavaScript 学习区块链 Solidity 和全栈 Web3 开发 Patrick Collins 在 FreeCodeCamp YT 频道上的 32 小时课程

随机推荐

  • 分割功能 - 避免最后一个空白空间

    我对如何使用 split 功能有疑问 str James Joseph Arun str split 我得到了结果 James Joseph Arun 我需要输出为 James Joseph Arun 最好的方法是什么 要删除所有空字符串
  • Mongo数据库保存Map中的数据

    我有以下有效的代码 if aDBCursor hasNext DBObject aDbObject aDBCursor next aDbObject put title Test Title ArrayList
  • 如何仅以编程方式禁用我的应用程序的移动数据

    我正在开发一个应用程序 我担心用户之间可以传输的数据量 由于一些用户的移动数据计划有限 而另一些则没有 我想知道是否可以开发一个开关来禁用我的特定应用程序的移动数据 有点像Android自己的数据使用 gt 移动 gt 应用程序 gt 限制
  • Typescript - 逐步扩展对象的类型

    我试图通过 TS 实现以下目标 let m Extendable m add one 1 m now has one field m add two 2 m now has one and two fields 我熟悉通过以下方式在 TS
  • Python - 在特定长度的文件中查找字符串,并且该字符串必须是大写字母和数字

    我想找到一个特定长度的字符串 例如 7 个字符 该字符串只能包含大写字母和数字 我有想法 逐行读取文件 我不确定这里的最佳实践是在一个块中读取整个文件还是使用循环逐行读取文件 必须使用循环逐行读取文件吗 read lines in text
  • GA 中的排名选择?

    我已经实施了Roulette wheel selection in GA TotalFitness sum Fitness ProbSelection zeros PopLength 1 CumProb zeros PopLength 1
  • matlab数据文件到pandas DataFrame [重复]

    这个问题在这里已经有答案了 有没有标准的转换方法matlab mat matlab格式数据 文件到PandaDataFrame 我知道可以通过使用解决方法scipy io但我想知道是否有一种简单的方法可以做到这一点 我找到了两种方法 sci
  • 在垂直和水平步进材料之间切换

    如何切换垫子垂直步进器 and 矩阵水平步进器来自具有相同步进步骤的角度分量 为了避免重写相同的 html 内容 请这样做 创建模板并使用 hashtag 然后你可以使用插入它们ng container ngTemplateOutlet h
  • Android 6.0 Marshmallow:片段动画出现奇怪的错误

    我在应用商店中的一个应用程序在 Android 5 0 上运行得非常好 但自从今天我将我的设备升级到 6 0 后 我遇到了奇怪的错误 我将其范围缩小到片段过渡动画 ftrans setCustomAnimations inAnim outA
  • constexpr 函数何时在编译时进行求值?

    既然声明为 constexpr 的函数有可能在运行时被调用 那么编译器根据什么标准决定是在编译时还是在运行时计算它呢 template
  • java-8中的Stream方法是如何实现的?

    当我尝试新的 java 8 Stream 时 我想深入了解它的方法是如何实现的 所以我查看了 Stream 类的实现 发现所有方法都是抽象的 我的问题是这些方法怎么样distinct and map 它必须在某个地方有具体的实现 这些方法在
  • Apache Camel 同时处理两个 csv 文件

    我正在尝试处理两个 csv文件并将其数据保存到数据库中 我使用的是 java dsl 而不是 spring 为了更好地解释这个场景 我正在读两本 csv文件并处理它们以将数据上传到 sql 数据库中 我为此执行的步骤是 在 servlet
  • 来自 SAS url 的 Azcopy 给出错误

    我正在尝试从 SAS URL 位置复制到目标存储帐户 我尝试了以下命令 但出现了一些错误 AzCopy exe 来源 Dest https yyyyyyyy blob core windows net vhds https yyyyyyyy
  • Firebase,变量作为键名

    我基本上想做的是 variable whatever fb set variable More Stuff 因此 这将导致一个如下所示的条目 whatever More Stuff 目前它只是结束为 variable More Stuff
  • Cassandra 中的 RPC 超时

    我收到以下错误 cqlsh dev gt SELECT DISTINCT id FROM raw data Request did not complete within rpc timeout 这是一个我永远不会再进行的特殊查询 我不在乎
  • 新上传的版本未在 App Store Connect 中显示或处理

    我在过去 48 小时内上传了多个版本 但没有一个在 App Store Connect 中出现或处理 构建已通过 Xcode 成功上传 还有其他人经历过这种情况并知道潜在的解决方案吗 我已向 Apple 提交了支持票 但我希望能更快得到解决
  • 在 Java EE7 项目中找不到 web.xml

    我正在 eclipse 中使用 JSF 2 2 和 Servlet 3 1 Java EE7 做一个项目 我遇到的第一个问题是 pom xml 中的错误
  • 最有效的便携式溢出检测? [复制]

    这个问题在这里已经有答案了 与 C C 和 D 等金属语言类似 检测无符号 64 位溢出的最有效 合理可移植的方式是什么 即不使用汇编程序 尽管您可能假设二进制补码算术和环绕行为 乘法中的整数 通过将无符号类型可表示的最大值除以被乘数之一
  • 在 .NET 中使用 RPC/编码的 SOAP Web 服务时出错

    我在调用 Web 服务方法时收到以下错误 无法将 System Xml XmlNode 类型的对象分配给 System String 类型的对象 Web 服务是 PHP 服务 我使用此处定义的 wsdl 文档中的 wsdl exe 创建了我
  • 从 C# 对象自动生成 javascript 对象模型

    寻找现有的 经过验证的解决方案来快速生成客户端JavaScript 对象模型代表一个现有的 C 对象 我想象有一个 T4 模板或其他一些方法 但我缺乏找到它的术语 我不是在讨论序列化以获取现有 C 对象实例的 JSON 表示形式或任何与反序