[トピック内 6 記事 (1 - 6 表示)] << 0 >>
UserControlの派生クラスを利用して、 依存関係プロパティやルーティングイベントを実装し、 自作コントロールのクラスを作成しました(C#言語を使用)。 結果、なかなか、良い具合に自作コントロールのクラスができました。 ただ、特定のアプリケーション専用の自作コントロールであるため、 プロジェクトを分けずに、アプリケーションのプロジェクトに 自作コントロールのクラス群を含めています。 そのせいで、自作コントロールの子ウィンドウ向けに公開している internal指定のメンバやメソッドが、コントロール外のクラスからも 見えてしまいます。 コントロール外のクラスからはinternal指定のメンバやメソッドを 隠したい(最低限、インテリセンスやXAMLエディタのヒントに表示 されないようにしたい)のですが、良い方法はないでしょうか? よろしくお願いいたします。
はい、WPFです。 ただし、やりたいことは、 「特定のクラスにのみ公開し、それ以外のクラスには公開しない メンバ/メソッドを作りたい」 ということです。 C++なら、friendを使いたくなるような場面です。 C#での代替手段が internalなのでしょうが、残念ながらこれは、 プロジェクト違いにメンバ/メソッドを隠蔽する機構であり、 同一プロジェクトに置いてしまうと隠蔽されません。
みなさん、どうもです。 > 特定クラスの private な 内部クラスじゃダメですか? やってみましたが、結局、自作コントロールの子ウィンドウは別クラスなんで、 子ウィンドウにデータを見せるために、internalとかにした時点でだめですね。 > 多分、C#の思想として、 > internalで参照されたくなければ別アセンブリにしろ、 > というものがあるのではないでしょうか。 おそらく、これですね。 UACの権限昇格とかでも、似たような話がありますしね。 素直にアセンブリを分けることにします。 ありがとうございました。
管理者用
- Child Tree -