繁体   English   中英

以编程方式重命名或排除C#类和方法

[英]Programatically renaming or excluding C# classes and methods

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

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

  • 必须更改名称空间,并相应地更改函数/类名称。
  • 我还有一些类可以在Sharpkit中模拟.NET类,而这些类在CsQuery代码中根本不需要。

我想做的是通过以编程方式执行这些更改来保持我的代码同步。 这可能吗? 这里的解决方案太旧了,无法与C#4.0一起使用,但是我觉得Rosalyn应该能够做到这一点。

您可以使用JsMethodAttribute在SharpKit中重命名方法:

[JsMethod(Name="doSomething")]
public void DoSomething(){}

您可以通过设置Export = false来以相同的方式排除方法:

[JsMethod(Export=false)]
public void DoSomething(){}

如果使用Clr模式,则应该能够使用完全相同的代码(需要jsclr.js库)。 或通过使用本机Js和.NET方法,同时扩展JavaScript中所有丢失的方法,例如,如果JavaScript没有String.StartsWith方法,则可以将其路由到其他方法,也可以使用扩展方法自己实现。

有关更广泛的帮助和代码示例,请尝试SharpKit论坛: https ://groups.google.com/forum/#!forum/sharpkit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM