DOBON.NETプログラミング道掲示板
(現在 過去ログ3 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33912 / inTopicNo.1)  Friend設定されているdllを利用することができますか?
  
□投稿者/ だんご 一般人(10回)-(2018/07/12(Thu) 11:19:48)
  • アイコン環境/言語:[VB.net] 
    分類:[.NET] 

    既存のdllが利用できないか?模索しています。
    デコンパイルして中を見ると、Namespaceと、Friendが設定されています。

    dll内のプロパティやメソッドを利用することは可能でしょうか?

    そもそも、勝手に使われたくないから、Friend設定しているから無理なのかな?
引用返信 削除キー/
■33913 / inTopicNo.2)  Re[1]: Friend設定されているdllを利用することができますか?
□投稿者/ 魔界の仮面弁士 大御所(1128回)-(2018/07/12(Thu) 12:01:35)
  • アイコンNo33912に返信(だんごさんの記事)
    > 既存のdllが利用できないか?模索しています。
    > デコンパイルして中を見ると、Namespaceと、Friendが設定されています。

    一応、System.Reflection 名前空間のクラスを使えば、
    相手が Private だろうと Private だろうと読み書きできます。

    とはいえ、技術的に可能と言うだけで、実際の利用はお奨めしません。
    そもそも Public になっていないのは、
    「外部からアクセスして欲しくない」からでしょうし。


    Public や Protected なメンバーだけで操作できないのかを検討し、
    それが叶わないなら、dll の提供元に改修依頼を出すのが本筋かと。
引用返信 削除キー/
■33914 / inTopicNo.3)  Re[1]: Friend設定されているdllを利用することができますか?
□投稿者/ Azulean 大御所(502回)-(2018/07/13(Fri) 06:00:53)
  • アイコンNo33912に返信(だんごさんの記事)
    > デコンパイルして中を見ると、Namespaceと、Friendが設定されています。

    ライブラリの使用条件・契約によっては逆コンパイル禁止とされているものがあります。気をつけておきましょう。

    > dll内のプロパティやメソッドを利用することは可能でしょうか?
    > そもそも、勝手に使われたくないから、Friend設定しているから無理なのかな?

    技術的な可否についてはすでに言及があるので、別の視点から。

    避けた方が良い理由

    ・非公開としている部分は、作者の都合により変更される恐れがあります。
    たとえば、.NET Framework のクラスであれば内部実装が変わり、それが Windows Update で配信されることによって、リフレクションで無理矢理使っていたコードが動かなくなることはあり得ます。

    ・直接書き換えると整合性が保たれない可能性があります。
    作者は公開プロパティ・メソッドからの変更のみを意図しており、非公開メンバーが直接書き換わる・呼び出されることで想定外の動きを引き起こす可能性があります。
引用返信 削除キー/
■33915 / inTopicNo.4)  Re[2]: Friend設定されているdllを利用することができますか?
□投稿者/ だんご 一般人(11回)-(2018/07/13(Fri) 09:25:27)
  • アイコン皆様のご意見、ごもっともと感じています。

    1部分だけでも、を関数として使えれば・・・と思い質問させて頂きましたが
    ご指摘のように、Publicの部分からアプローチしてもやはり全体的な整合がとれず
    「オブジェクト参照がオブジェクトインスタンスに設定されていません。」とエラーになります。結局、コードを読んで(読む力もありませんが)修正しないと使えません。

    やはり、ユーティリティーとして提供されているdllではないため、二次利用は難しいと感じました。

    しかし、皆さんの知識の深さには感服致します。

    今後とも宜しくお願い致します。
解決み!
引用返信 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/


- Child Tree -