1

有没有一种简单的方法可以在调试模式下将 ObjectContext 公开,在发布模式下将其设为内部?

使用 Linqpad 连接到 ObjectContext 以进行快速测试和查询非常方便,因此出于开发目的,我希望它是公开的。但是我不想考虑将同样的便利部署给一些聪明的客户时的后果。

4

2 回答 2

2

正如评论中提到的,这可能没有任何实际用途,但是:

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

在处理ObjectContext从 .edmx 文件生成的文件时,您需要自定义 C# 文件的生成方式。默认是不可定制的,但设计者有一个选项“添加代码生成项”。如果你使用它,你会得到几个选项。我正在使用“ADO.NET 自跟踪实体生成器”,但同样的方式适用于所有这些。选择此选项会将两个模板文件(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 回答