ObjectContext在调试模式下为public,在发布模式下为internal

本文关键字:模式 internal 布模式 public 调试 ObjectContext | 更新日期: 2023-09-27 18:25:50

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

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

ObjectContext在调试模式下为public,在发布模式下为internal

如评论中所述,这可能没有任何实际用途,但:

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

当处理从.edmx文件生成的ObjectContext时,您需要自定义C#文件的生成方式。默认值是不可自定义的,但设计器有一个选项"添加代码生成项"。如果你使用这个,你会得到几个选项。我使用的是"ADO.NET自跟踪实体生成器",但同样的方法适用于所有这些工具。选择此选项会将两个模板文件(Model.tt和Model.Context.tt)添加到您的项目中,您可以根据需要自由修改。对于您询问的修改,您可以在Model.Context.tt文件中找到<#=Accessibility.ForType(container)#> partial class。你可以更新它,使其读取

#if DEBUG
<#=Accessibility.ForType(container)#>
#endif
partial class

预处理器指令?

# if(DEBUG)
        public ObjectContext _context;
# else
        internal ObjectContext _context;
#endif