これと同じトピックは、生成されたコードの Script# 0.8 の変更でもカバーされていました。
要約すると、生成されたコードはスクリプト モジュール (関数クロージャーとして実装) 内にあり、モジュール オブジェクトにはすべてのパブリック型がぶら下がっており、モジュールのコンシューマーが AMD パターンに沿ってアクセスできるようになっています。AMD パターン自体の詳細については、http: //addyosmani.com/writing-modular-js/を参照してください。
説明のために、アセンブリが「foo」モジュールに対応している場合、結果のスクリプトは次のようになります。
define('foo', ['ss'], function(ss) {
// GeneralJS_v4.Wrappers.Elements.MyElementEventHandlers
function GeneralJS_v4$Wrappers$Elements$MyElementEventHandlers(element) {
this._element = element;
this._handlersMap = {};
}
var $exports = ss.module('basic', null,
{
MyElementEventHandlers: [ GeneralJS_v4$Wrappers$Elements$MyElementEventHandlers, GeneralJS_v4$Wrappers$Elements$MyElementEventHandlers$, null ]
});
return $exports;
});
生成された出力を確認する良い例と、ScriptTemplate メタデータ属性を使用して変化させることが単体テストです - https://github.com/nikhilk/scriptsharp/tree/cc/tests/TestCases/Basic/Simpleを参照してください
モジュールへの参照を持つ呼び出し元は、object.member スタイルを使用しfoo
て、型にアクセスできます。foo.MyElementEventHandlers
例えば:
require(['foo'], function(foo) {
var o = new foo.MyElementEventHandlers(...);
});
単体テストに加えて、これは、script# AMD スクリプト ローダー (AroundMe サンプル)、はるかによく知られている requirejs AMD ローダー (KOWorld サンプル) で生成されたスクリプトの使用を示す、github リポジトリにあるさまざまなサンプルにも示されています。 、および AMD パターンを使用しない場合 (FishTank サンプル)。
それが役立つことを願っています。