問題タブ [internalsvisibleto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - InternalsVisibleTo 属性が使用されている場合の難読化?
InternalsVisibleTo
この属性は、意味のある単体テストを可能にするためだけに使用したいと考えています。
internal
ただし、リリース用にビルドするときに、フレンド アセンブリがリリース ビルドに含まれていなくても、メンバーが難読化されないのではないかと心配しています。
これらのメンバーが本当にリリース ビルドinternal
と見なされるようにするために、私ができる/する必要があることはありますか? internal
このオンラインでは、どちらにしても明確な答えが見つかりません。
参考までに: 特定の難読化ツールをまだ選択していません。この質問に対する答えは、その選択に影響を与える可能性があります。
entity-framework - Entity Framework: ジェネリック基本型からの内部プロパティのマッピング
カプセル化を解除した場合にのみ機能するように見える、EF マッピングの実際のシナリオはかなり複雑です。誰かがそれを正しく行う方法を明らかにするかもしれません。さもなければ、それはバグであると受け入れるでしょう。
私は 2 つのプロジェクトを持っていDomain
ますPersistance
。Domain
POCO クラスを含み、その内部を属性Persistance
によって公開します。InternalsVisibleTo
内部Domain
(目的はを永続化することですSomeProduct
):
SomeProduct
すべてのフィールドを含む 1 つのテーブルで終了する必要があります。したがって、次のようになりPersistance
ます。
内部Persistance
:
すべての基本構成タイプProducts
:
SomeProduct の場合:
これらのマッピングで Add-Migration を実行しようとすると、SomePropInternal is not declared on the type SomeProduct
.
に変更するinternal string SomePropInternal
と、public string SomePropInternal
移行が作成されます。それが問題です。私はそのプライベートなプロパティを公開したくありません。
AnotherSomePropInternal
すべてが正常に動作しますinternal
。
c# - C#でアセンブリをロードするときにFileNotFoundExceptionを取得する
C#には、同じソリューション内の別のアセンブリ(AssemblyB)から内部が見えるアセンブリ(AssemblyA)があります。これは、
ただし、AssemblyAはインストーラーにパッケージ化されていますが、AssemblyBは、お客様にアクセスさせたくない内部ライブラリのままです。アセンブリAを正しくロードするには、アセンブリBが存在する必要がありますか?現在、アセンブリまたはその依存関係の1つが見つからなかったことを示すFileNotFoundExceptionが発生していますが、これが当てはまるかどうか疑問に思っています。
これが実際に当てはまる場合、アセンブリBが存在しない状態でモジュールをロードする方法はありますか?
visual-studio-2012 - FakesFrameworkシムを使用してVS2012で内部クラスをモック/分離する方法は?
したがって、問題は、テストするクラスによって使用される内部クラスがアセンブリに多数あることです。アクセサーはVS2012から削除されているので、使用[InternalsVisibleTo]
しても問題ありません。内部クラスをシミ化しようとした場合を除いて、Fakesフレームワークには表示されません。また、私が扱っている特定のクラスは静的メソッドを持つ静的クラスであり、組織内でそのレベルのリファクタリングに抵抗があるため、インターフェイスを使用する(およびスタブを使用する)ためにすべてをリファクタリングしたくないことにも注意してください。
(文字通り)すべてをインターフェースすることなく、これらの内部メンバーをVisual Studio 2012のシムコンテキストで使用できるようにする方法はありますか?
c# - Entity Framework のエンティティへの内部アクセスにより、クエリがクラッシュする単純な linq が作成されます
データベース アクセスに EF を使用するライブラリを開発しています。ライブラリの外部にエンティティが公開されるのを避けるために、すべてのテーブルのアクセスを内部に設定しました (エンティティ コンテナー アクセスも内部に設定しました)。問題は、ライブラリ内でエンティティを ID で取得しようとすると、Where
クエリが例外をスローすることです。理由はわかりません。
内部アクセスはダイアグラム (.edmx ファイル) に設定されており、ライブラリ内のファクトリとして使用している静的クラスには次のようなものがあります。
ID によってデータベースから具体的なエンティティ (行) を取得する単純な where クエリ。
すべてのエンティティ クラス アクセスがパブリックの場合は問題ありませんが、それらを内部に設定すると、次の例外がスローされます。
助言がありますか?
xamarin.ios - InternalsVisibleToを使用して、MonoTouchユニットテストがMT Libの内部にアクセスできるようにしますか?
MonoTouchライブラリのAssemblyInfoファイルでInternalsVisibleToアセンブリ属性を使用して、MonoTouchユニットテスト(Touch.Unit)がMonoTouchライブラリの内部にアクセスできるようにすることはできますか?
これは、MonoTouch以外の世界で使用して、フープを飛び越えずに内部のテストを可能にするのに最適なものです。ただし、MonoTouchユニットテストで動作させることはできません。それで、先に進む前に、これがテストランナーであるiOSアプリケーションであるため、それが可能かどうかを尋ねます。ネイティブコードにコンパイルされたiOSアプリケーションがこれを実行できるかどうかはわかりません。
c# - いくつかのクラスを除いてInternalsVisibleTo
InternalsVisibleTo
テストプロジェクトで内部を表示するために、プロジェクトの1つに申請しました。ただし、(これは私が知っている奇妙なことです)いくつかの内部クラスをマークして、で示されているプロジェクトに表示されないようにする必要がありますInternalsVisibleTo
。
コンパイラが認識している、これに適用できる属性はありますか?
.net - Reflexiiを使用してアセンブリでInternalsVisibleToを変更するにはどうすればよいですか?
アセンブリのInternalsVisibleTo属性値を変更しますか?Reflectorには、[assembly:InternalsVisibleTo(AssemblyName)]が表示されますが、変更できるAssemblyInfo.csが表示されません。可能であれば、属性のAssemblyNameをネイティブアセンブリの名前に変更したいと思います。
c# - .NET Remoting を介した内部インターフェイスの実装
アセンブリだけがこれらのメンバーをリモートで呼び出すようにするために、.NET リモート処理を介して実装する必要がある内部インターフェイスがありました (InternalsVisibleTo を使用して、フレンド アセンブリへのアクセスを許可しました)。ただし、インターフェイスを実装してビルドすると、次のエラーが発生しました。
これを機能させる方法を検索して見つけることができませんでした。ただし、アセンブリをビルドできるようにするインターフェイスを明示的に実装したので、任意のフレンド アセンブリからリモート メソッドを問題なく呼び出すことができます。
ただし、このトピック、特に MSDN と StackOverflow に関する情報が不足していることを懸念しています。内部インターフェイスを介した .NET リモート処理の実装に問題はありますか? もしそうなら、なぜですか?
編集 これが私のインターフェースと実装の外観です:
インターフェース
実装
c# - InternalsVisibleTo 、異なるアセンブリへの異なるメンバー変数
プロジェクト A にクラス A_class があります。クラス A_class には、コンストラクターがあります。
、およびメンバー変数 internal int A_member;
現在、アセンブリ B とアセンブリ C という 2 つのフレンド アセンブリがあります。アセンブリ B が A_Class() のみにアクセスできるようにしたい アセンブリ C が A_member のみにアクセスできるようにしたい そのため、アセンブリ B は A_member にアクセスできず、およびアセンブリ C は A_class() にアクセスできません
出来ますか ?または、これに代わるものはありますか?
私が使用する場合
次に、B と C の両方が A_class() と A_Member の両方にアクセスできますが、これは望ましくありません。