- - PR -
クラスの変更をせずにオブジェクトのコピー
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-04-25 11:28
これではアクセスできないメンバが出てきてしまう点は結局解決できないような気がします。 どう目的を達成するのでしょうか? それとも全メンバが奇跡的に Protected だったのでしょうか?
興味があるためお聞きしますが 「難しい」 の根拠はなんでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-04-25 14:51
技術的な問題ではなくクラス変更の許可が下りるかどうかだけの問題です。
問題部分ですが、Publicの関数部をオーバーライドでなんとか解決できそうです。
リフレクションの Parmission が無いため、メンバが取得できませんでした。 | ||||||||||||
|
投稿日時: 2008-04-25 15:35
s/Parmission/Permission/ System.Security.Permissions.ReflectionPermission ってことですか... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-04-25 15:41
> リフレクションの Parmission が無いため、メンバが取得できませんでした。
それは、呼び出し側の問題ですね。クラス側に手を入れた所でどうにもなりません。 リフレクションのアクセス許可がないとは、変わった環境でコードが実行されているのでしょうか? 例えばインターネットからダウンロードしたアセンブリには既定ではリフレクションのアクセス許可がありません。 _________________ C#と諸々 | ||||||||||||
|
投稿日時: 2008-04-25 17:08
スペル間違っていましたね(汗
リフレクションのGetFilesメソッドでNothingしか返ってこないため、 呼び出し元に Permission が必要なのかと思っていましたが、呼び出し側で使用するものなんですね・・・。 勉強不足ですみません。 ちなみに他の標準で提供されているクラスからはGetFilesメソッドで取得できました。 | ||||||||||||
|
投稿日時: 2008-04-25 17:32
アクセス許可がない場合は例外が発生します。今回はアクセス許可は無関係でしょう。
> 呼び出し元に Permission が必要なのかと思っていましたが、呼び出し側で使用するものなんですね・・・。 「呼び出し側」と「呼び出し元」って同じじゃないですか?? 僕は KT工房さんが書いてるコードの方を指すつもりで「呼び出し側」と言いました。 ちなみに、アクセス許可は使用するのではなく与えられます。 標準で提供されているクラスから取得できたとありますが、もしかしてそれは public なフィールドだったりしませんか? GetFields の引数に BindingFlags.Public, BindingFlags.NonPublic, BindingFlags.Instance の 3 つをちゃんと指定していますか?
_________________ C#と諸々 | ||||||||||||
|
投稿日時: 2008-04-25 17:38
まだまだ勉強不足で会話についていけないです・・・。 BindingFlags はよこけんさんの指定している3つとも指定しましたが、Nothingが返ってきます。 | ||||||||||||
|
投稿日時: 2008-04-25 17:54
こちらが一つ勘違いしていました。
ReflectionPermission がない場合は null を返しますね。 思い込みで返答してしまい、すみませんでした。 すみませんが、今から用事があるので返信できなくなります。 _________________ C#と諸々 |