ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

前に言っていた問題の回避案とC#の属性について

前に記事「Type.IsAssignableFromメソッドが変になる件について考える。」で、
Type.IsAssignableFromメソッドで有効プラグインかどうか判定することは出来ないと判明しました。

なので、一度インスタンス化してisで判断するしかなくガッカリしましたが、

そうとも限らないかも知れないです。

プラグインで使うクラスには属性クラスを設定するようにしたら良いんじゃないでしょうか。

Typeには属性クラスを調べる機能もあった気がします。


まだ作って見ていないので結果はどうなるかわかりませんが。

もしかしたら、あの記事で書いたことと同じ理屈でTypeクラス全般の機能が役に立たないのかも知れない…。

まぁ、今度やってみます。



しかし、属性クラスってなんなのでしょうかね。

実は私、属性クラスについてあまり理解していないんですよ。

[STAThread]とかよく見かけますが。
(STAThreadは属性クラスだけでなくCOMの理解も必要…)

一般的な用途とは少し外れた、特殊な機能?

C#コンパイラや、Aseemblyクラスなどが見る物なのでしょうか。

まぁ、普通のものじゃないですよね。

クラスの機能として使うのではなく、情報として使うというのは、なんとなくわかりますが…。


まぁ、とにかく、プラグインクラスに属性つけて実験してみたいと思います。

tag:

コメント

プラグインをサポートするなら

プラグインをサポートするための仕組みを作ることが目的でないのならMEF(Managed Extensible Framework)を使うのが手っ取り早いと思います。

Re: プラグインをサポートするなら

そうなんですよね。
現在、製作中のこのライブラリがだいぶ出来上がってきたときにMEFの存在を知ってしまったもので、えらい脱力しました…。
まぁ、仕組みの勉強も兼ねて作ろうと思います。

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/271-d4397f1b
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。