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

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

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

Re[5]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す


(過去ログ 144 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■84407 / inTopicNo.1)  自作コントロールの内部メンバやメソッドをコントロール外へ隠す
  
□投稿者/ ぶなっぷ (111回)-(2017/06/29(Thu) 10:16:08)

分類:[.NET 全般] 

UserControlの派生クラスを利用して、
依存関係プロパティやルーティングイベントを実装し、
自作コントロールのクラスを作成しました(C#言語を使用)。

結果、なかなか、良い具合に自作コントロールのクラスができました。
ただ、特定のアプリケーション専用の自作コントロールであるため、
プロジェクトを分けずに、アプリケーションのプロジェクトに
自作コントロールのクラス群を含めています。

そのせいで、自作コントロールの子ウィンドウ向けに公開している
internal指定のメンバやメソッドが、コントロール外のクラスからも
見えてしまいます。
コントロール外のクラスからはinternal指定のメンバやメソッドを
隠したい(最低限、インテリセンスやXAMLエディタのヒントに表示
されないようにしたい)のですが、良い方法はないでしょうか?

よろしくお願いいたします。

引用返信 編集キー/
■84408 / inTopicNo.2)  Re[1]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す
□投稿者/ WebSurfer (1254回)-(2017/06/29(Thu) 10:30:48)
No84407 (ぶなっぷ さん) に返信

何の話でしょう? XAML という言葉が出てきているから WPF?
引用返信 編集キー/
■84409 / inTopicNo.3)  Re[2]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す
□投稿者/ ぶなっぷ (112回)-(2017/06/29(Thu) 11:29:28)
はい、WPFです。

ただし、やりたいことは、
「特定のクラスにのみ公開し、それ以外のクラスには公開しない
  メンバ/メソッドを作りたい」
ということです。

C++なら、friendを使いたくなるような場面です。
C#での代替手段が internalなのでしょうが、残念ながらこれは、
プロジェクト違いにメンバ/メソッドを隠蔽する機構であり、
同一プロジェクトに置いてしまうと隠蔽されません。

引用返信 編集キー/
■84411 / inTopicNo.4)  Re[3]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す
□投稿者/ hihijiji (5回)-(2017/06/29(Thu) 12:51:40)
特定クラスの private な 内部クラスじゃダメですか?
引用返信 編集キー/
■84412 / inTopicNo.5)  Re[4]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す
□投稿者/ 猫吉 (1回)-(2017/06/29(Thu) 14:33:16)
多分、C#の思想として、
internalで参照されたくなければ別アセンブリにしろ、
というものがあるのではないでしょうか。
引用返信 編集キー/
■84413 / inTopicNo.6)  Re[5]: 自作コントロールの内部メンバやメソッドをコントロール外へ隠す
□投稿者/ ぶなっぷ (113回)-(2017/06/29(Thu) 16:43:25)
みなさん、どうもです。

> 特定クラスの private な 内部クラスじゃダメですか?
やってみましたが、結局、自作コントロールの子ウィンドウは別クラスなんで、
子ウィンドウにデータを見せるために、internalとかにした時点でだめですね。

> 多分、C#の思想として、
> internalで参照されたくなければ別アセンブリにしろ、
> というものがあるのではないでしょうか。
おそらく、これですね。
UACの権限昇格とかでも、似たような話がありますしね。

素直にアセンブリを分けることにします。

ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -