-1

コードでカバレッジ除外の属性を宣言する必要があります。問題は、プロジェクト グループがあり、必要なときにすべてのプロジェクトからアクセスできる場所に作成したいということです。現在、名前空間は使いやすく、各プロジェクトで次のように宣言されます。

public class CoverageExcludeAttribute : Attribute
{

}

属性を使用する各ファイルに名前空間を追加する必要なく(たとえば、グローバル名前空間を使用して) 、プロジェクトグループのどこにでもアクセスでき、一度だけ宣言できる方法で、この目標を達成するためのより良い方法はありますか?

ありがとうございました

4

3 に答える 3

1

私は実際にP.Brian.Mackeyに同意しますが、それを行う唯一の方法は、DjKrazeが言ったとおりだと思います:

タイプ ClassLibrary の新しいマイクロ プロジェクトを作成し、Coverage(..) クラスを含む単一の .cs ファイルを追加し、クラスが名前空間ブロック内にないことを確認します。次に、それをビルドし、他のプロジェクトのそれぞれに対して、作成したばかりのマイクロプロジェクトへの Add-Reference を実行します。そうすれば、確実に機能し、さらに「共通コード」を配置するための便利な場所が得られます。どこでも利用できます。

ただし、各プロジェクトは参照で更新する必要があります。これは最低限の要件です。全体として、コピーの代わりに何かを使用する場合は、参照する必要があります。

申し訳ありませんが、そのようなことのための他のオプションはほとんどありません! もう 1 つの方法は、コピーすることです。特定の .cs ファイルを各プロジェクトにコピーする単純なビルド前スクリプトを簡単にセットアップできますが、ファイルを .csproj のビルド リストに「追加」するのは少し難しく、Ruby またはパイソンか友達...

うーん..そうは言っても、ビルド前のスクリプトを書いて、マイクロプロジェクトへの参照を自動的に挿入することは可能かもしれません..しかし、これを行う価値があるかどうかはわかりません。50 ~ 100 以上のプロジェクトがありますか? そうでなければ、おそらくそれは価値がありません..

于 2012-08-17T13:55:27.793 に答える
0

これは VS2010 以降にのみ適用されます

各プロジェクトでソース コードを定義したいが、プロジェクト参照は必要ない場合は、NuGet によって提供される機能の一部、特にSource Code Transformationsを参照してください。これらにより、NuGet パッケージをプロジェクトに追加するときに、プロジェクトにソース コードを追加できます。

于 2012-08-17T14:05:42.407 に答える
-1

依存性注入 http://en.wikipedia.org/wiki/Dependency_injectionを使用できます

最も人気のあるものは、Microsoft Unity、Ninject、NHibernate、StructureMap、Autofac です。

幸運を!

于 2012-08-17T13:35:32.713 に答える