1

ObjectContextをデバッグモードでパブリックにし、リリースモードで内部にする簡単な方法はありますか?

Linqpadを使用すると、ObjectContextに接続してすばやくテストしたりクエリを実行したりするのに非常に便利なので、開発目的で公開する必要があります。しかし、同じ便利さが一部の賢い顧客に展開された場合の結果については考えたくありません。

4

2 に答える 2

2

コメントで述べたように、これは実用的ではないかもしれませんが、:

#if DEBUG
public
#endif
class YourContext : ObjectContext
{
    ...
}

.edmxファイルから生成さObjectContextれたものを処理する場合は、C#ファイルの生成方法をカスタマイズする必要があります。デフォルトはカスタマイズできませんが、デザイナーには「コード生成アイテムの追加」オプションがあります。これを使用すると、いくつかのオプションが表示されます。「ADO.NETSelf-TrackingEntityGenerator」を使用していますが、すべて同じ方法で機能します。これを選択すると、2つのテンプレートファイル(Model.ttとModel.Context.tt)がプロジェクトに追加され、必要に応じて自由に変更できます。あなたが求めている変更については<#=Accessibility.ForType(container)#> partial classModel.Context.ttファイルにあります。これを更新して、次のようにすることができます

#if DEBUG
<#=Accessibility.ForType(container)#>
#endif
partial class
于 2012-02-27T08:48:52.387 に答える
0

プリプロセッサディレクティブ

# if(DEBUG)
        public ObjectContext _context;
# else
        internal ObjectContext _context;
#endif
于 2012-02-27T08:47:44.100 に答える