代码生成——以编程方式重命名或排除c#类和方法

本文关键字:方法 排除 重命名 编程 方式 代码生成 | 更新日期: 2023-09-27 18:02:15

我正在使用SharpKit编写HTML解析器,它输出到Javascript;但也想在CsQuery中偶尔运行相同的代码,它输出二进制。

我为SharpKit的代码几乎可以直接在CsQuery中使用,但不完全是:

  • 必须更改命名空间,并相应地更改函数/类名。
  • 我也有几个类在Sharpkit中模拟。net类,我根本不需要在CsQuery代码中。

我想能够做的是保持我的代码同步执行这些更改编程。这可能吗?这里的解决方案对于c# 4.0来说太老了,但我觉得Rosalyn应该能够做到这一点。

代码生成——以编程方式重命名或排除c#类和方法

你可以使用JsMethodAttribute:

重命名SharpKit中的方法
[JsMethod(Name="doSomething")]
public void DoSomething(){}

您可以通过设置Export=false:

来排除方法。
[JsMethod(Export=false)]
public void DoSomething(){}

如果使用Clr模式(需要jsclr.js库),应该能够使用完全相同的代码。或者使用原生Js和。net方法,同时扩展JavaScript中任何缺失的方法,例如,如果JavaScript没有String。方法,你可以将它路由到一个不同的方法,或者使用扩展方法自己实现它。

更多的帮助和代码示例,尝试SharpKit论坛:https://groups.google.com/forum/!论坛/sharpkit