2013-03-05 48 views
0

我正在使用SharpKit編寫HTML解析器,它輸出到Javascript;但也想在CsQuery中偶爾運行相同的代碼,該代碼輸出二進制。以編程方式重命名或排除C#類和方法

,我有SharpKit 幾乎可以CsQuery可直接使用的代碼,但並不完全,如:

  • 的命名空間必須改變,並且功能/類名,相應地改變。
  • 我也有幾個類在Sharpkit中模擬.NET類,我根本不需要CsQuery代碼。

我希望能夠做的是通過編程方式執行這些更改來保持我的代碼同步。這可能嗎?解決方案here對於C#4.0來說太舊了,但我覺得Rosalyn應該能夠做到這一點。

+2

您可以創建一個包裝類 – 2013-03-05 18:02:30

+0

@Steve我想,但我希望比這更清潔輸出代碼。這也不能解決(確實不太緊迫)的刪除問題。 – Arithmomaniac 2013-03-05 19:14:36

+1

你不需要刪除,你只是不在你的包裝中實現這些方法。這比你所建議的更容易,更方便。 – 2013-03-05 19:20:36

回答

0

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

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

您可以排除方法,通過設置出口=假以同樣的方式:

您應該能夠使用完全相同的代碼如果你使用Clr模式(需要jsclr.js庫)。或者,通過使用本機Js和.NET方法,同時在JavaScript中擴展任何缺少的方法,例如,如果JavaScript沒有String.StartsWith方法,則可以將其路由到不同的方法,或者使用擴展方法自己實現它。

如需進一步說明和代碼示例,請嘗試SharpKit論壇: https://groups.google.com/forum/#!forum/sharpkit

+0

我想你誤解了我的問題 - 我試圖將C#SharpKit代碼更改爲C#CsQuery代碼,這些代碼具有用於HtmlElement等事物的不兼容命名的API。 – Arithmomaniac 2013-03-21 22:06:20

相關問題