1. コントリビューションクラスの追加
- namespace nft.contributions.ui
- {
- /// <summary>
- /// CtbMenuItem の概要の説明です。
- /// </summary>
- public class CtbMenuItem : Contribution
- {
- /// <summary>
- /// Contributes a menu and submenu items to mainmenu.
- ///
- /// This contribution can add several items at once.
- /// </summary>
- public CtbMenuItem(Plugin p, ParamsReader e)
- : base(p, e)
- {
- // 実装を定義
- }
- }
- }
2. コントリビューションタイプの宣言 plugin.xmlに以下のような記述を追加する
3. コントリビューションの追加 plugin.xmlに以下のような記述を追加する。 任意の数だけ記述することが出来る。2 とは別のplugin.xmlに書くこともできる。
4. NeoFT起動 起動時にCtbMenuItemのコンストラクタが呼ばれるようになる。 引数 ParamsReader には 3 に記述したノードの内容が含まれる。
CtbAnonymous クラスを継承して作る
<contribution type="Anonymous" id="Test_CtbAnonymous">
<name>匿名コントリビューション</name>
<description>ファクトリ宣言を必要としない、孤立したコントリビューションのサンプル(CtbAnonymousを継承すべし)</description>
<class name="nft.debug.TestAnonymousCtb" codebase=".Core"/>
</contribution>
実際には type=Anonymous の宣言がメインのplugin.xmlに書いてある
シングルトンのような孤立したコントリビューションを気軽に追加できるように作ったが、
そういう物は基本コードで成り立つので、BinaryModule として定義する方がよい。
(各プラグインの初期化順に影響するため)