2013-01-16 13 views
17

アセンブリの内部クラスを他のアセンブリから参照できるようにするのは本当ですか?他のアセンブリから内部クラスを参照できるようにする

私はAssemblyInfoファイルと

[assembly: InternalsVisibleTo()] 

属性について知っています。

しかし私の場合はうまくいきません。これを行う主な目的は、LINQPADから呼び出しメソッドを作成することです。だからこの[assembly: InternalsVisibleTo("LINQPad")]はうまくいきません。私は理由を知らない。私のプロジェクトでは、依存リゾルバを使用して、linqpadでそのようなことをするのは難しいです。なにか提案を?

+4

LINQPadが動的にアセンブリを生成していると強く思っています。おそらく、LINQPadアセンブリ自体が型にアクセスする必要はありません。 –

+0

@Jon Skeet Autocompleteも機能しません。私はそれがLINQPADアセンブリだと思います。 – Neir0

+2

オートコンプリートはほぼ確実にリフレクションに基づいています。パブリックプロパティのみにフィルタリングすることを完全に期待しています。結局のところ、LINQPadアセンブリ自体はあなたのコードへの*直接*呼び出しを含んでいませんね。 –

答えて

44

a new betaがアップロードされました。

その内部あなたがアクセスしLINQPadしたいライブラリに次の属性を追加します。

[assembly: InternalsVisibleTo("LINQPadQuery")] 

あなたはまた、LINQPadの環境でこの機能を有効にする必要があります(編集|設定|詳細設定)。

どうやったらどうなるか教えてください。

+0

私のために働きます。内部のメソッドにアクセスするためにリフレクションに戻らなければならなかった時がありました。これは便利な機能なので、ありがとうございます。 – sgmoore

+0

アクセスレベルに関する警告は私のためにも消えましたが、今私はこれを受け取ります: '一貫性のないアクセシビリティ:基本クラス 'Database.Model.CustomDataContext'は 'UserQuery'クラスよりアクセスしにくいです。私はこれをどのように乗り越えることができるか知っていますか? CustomDataContextのシグネチャは '内部の部分クラスCustomDataContext:DbContext'です – SeriousM

+1

最新のビルドを試してください - 私は回避策を追加しました –

関連する問題