[2147] Re: プラグインでの種類の宣言について

投稿日 2018/07/07(Sat) 16:59:15
投稿者 ゆうと
参照先

こんにちは。

> どんな感じになるか、WPFの基本的な部品をプラグインにして試そうとしています。
> その中で、以下は可能でしょうか?可能な場合、どのように継承or属性を使えばよいでしょうか?
> ・ウィンドウ部品のように、共通部分を大きく定義した基底の種類の作成。
> ・Formsでの、ツールバーの部品のようなに、いくつかの部品で共通した機能がある場合に、それを一括して扱える種類の作成。
> ・クラスツリーの継承階層ごとに対応する種類を定義して、うまく振り分けられるかどうか(現状では該当する部品はなさそう?)(UIEelemntと、Controlと、ContetControlと・・・と、直接のプロパティやメソッドのみ定義した種類を作って、活用可能か?)

基本的には、プロデル種類にしたい.NETクラスを継承したクラスを作り、
IProduireClassインタフェースを実装することで、プロデルプラグイン用に種類を定義できます。
(それを継承した派生クラスもプロデルの種類として定義することが可能です)

ただ、.NETクラスがsealedクラスになっていてIProduireClassを実装できない場合や、
質問に挙がっているような、すでに定義された.NETクラスの基底クラスをプロデル種類として扱いたい場合には
Produire.ClassWarpper<T>クラスを使用してください。
既存の.NETクラスのプロデル種類用のラッパーを作ることができます。

定義については、ラッパー用の独立した種類クラスを作り、ClassWarpper<T>継承します。
ラッパーを定義すると、プロデル上で「作る」文でTクラスから派生するクラスインスタンスを生成した場合に、このラッパーインスタンスも生成され、ラッパーを基底種類のように扱うことができます。

[メインスレッド, 対応型(typeof(XXXBase))]
public class XXX基底 : ClassWarpper<XXXBase>
{
}

この点に関しては長期にわたって試行錯誤していますので
今後挙動が変わる可能性もあります。
現時点での仕様ということで理解してください。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -