C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 59 を表示中)
■33585 / )  Re[3]: コンストラクタの動的定義
□投稿者/ よねKEN (285回)-(2009/03/05(Thu) 09:32:48)
とりあえず↓の関連質問ということでよろしいですか?
http://bbs.wankuma.com/index.cgi?mode=al2&namber=33406
上記のスレはあまり深くは読んでいません。

No33584 (デザパタ大好きっ子 さん) に返信
> >リフレクションの意味が違うような(^-^;
> 確かにリフレクションは動的にメタ情報を取得するために利用することが多いですが、
> 動的に型なども定義できるようですよ?あれ勘違いしてますかね?

新しいアセンブリを作ってそこに新しい型を定義することはできますが、
既存の型を改ざんするようなことはできないと思います。
#根拠となる出典を示せませんが、改ざんできない/あるいは改ざんされたらわかるような仕組みがあったと思います。

> >後、正当なコンストラクタを経由せずに生成できたインスタンスじゃ内部状態が正常かどうかも信用もできませんね。
>
> 内部状態は特に気にしていません。

内部状態を気にしないの意味がわかりません。
内部状態が不正であるということは、そのインスタンスに対して何も正常には操作できないかもしれないということです。
メンバに正しくアクセスできないとしたら、意味がないと思いますが・・・。
それともメンバに一切アクセスせずに何かの役に立つのでしょうか?

> >というか何がしたいのでしょう。
>
> FlowLayoutPanelにアセンブリが持っているフォームを追加したいのです。

「日本語で書かれている部分の取得」が目的なんだろうと思っているのですが、
そのために「FlowLayoutPanelにアセンブリが持っているフォームを追加したい」理由や
その結果、どういうことをやろうとしているのかがよくわかりません。

> 最終的にはこれを多言語対応に使います。
> リリース後の既存アセンブリから例えば日本語で書かれている部分を英語に置き換えていきます。

既存のアセンブリそのものを書き換えるとおっしゃってますか?
それともファイル自体の置き換えですか?
前者だとアセンブリを改ざんしたいと言っているのと同じだと思うので、無理じゃないでしょうか。

> 置き換えた情報は外部に保存しておき、アセンブリがロード時に言語情報を読み込みます。

最初から外部に情報を用意すればいいのでは?

> 最後の仕組みはアセンブリ側に用意するつもりでしたので、多言語対応を意識した作りにはなってしまうと思います。
> なので引数なしコンストラクタを作って、"使うな"とでも明記しとけば良い話ではあるのですが。
> またSingletonのようなコンストラクタをprivate宣言しているものまで対応しなければならないので、気持ち悪い話ですがね。

ごめんなさい。おっしゃっていることがわかりません。
そもそものアプリの作りとして、言語情報は一箇所に固まっていないのですか??

返信 編集キー/


管理者用

- Child Tree -