如何防止直接调用数据访问方法

时间:2015-05-19 23:36:51

标签: .net wpf

我正在开发一个WPF应用程序,我想知道是否可以阻止访问特定的过程,除非它被另一个过程调用。具体来说,我的数据访问层中有一个删除程序,如果已经执行了某些验证程序,我只想运行它。我不想在delete方法中执行验证过程,因为验证逻辑可能因调用它的情况而有所不同。

我的应用程序架构如下: 数据访问 - 实体框架 数据存储库 - 相当通用的CRUD操作。只有具有数据访问层依赖关系的图层 业务逻辑 - 适用于复杂的业务逻辑。 演示 - 调用业务逻辑层,或者如果它是简单的数据访问,则调用数据存储库层。我没有强迫这一层通过BL层,因为我有很多数据访问权限,这是一个直接的传递,我不想这样做。

基本上我正在寻找的是这样的东西 UI - >验证方法(BL) - >删除方法(存储库) UI - >删除方法 - >抛出异常

我是开发多层应用程序和.net框架的新手,所以我正在寻找最好的方法。我正在寻找代码访问安全性,它看起来像在Delete方法上放置一个deny然后在验证方法中使用assert来覆盖它将做我正在寻找的东西。我对使用安全属性有点谨慎,所以我想看看这是否是一个很好的选择,如果可能有更好的方法来处理它。

注意:如果对任何人都很重要,我在VB.Net编程,但我可以很容易地从C#翻译。

1 个答案:

答案 0 :(得分:0)

如果要实现分层体系结构,每个层应该是解决方案中的不同项目,那么您可以简单地从第一层到第三层删除依赖关系,这样就完全不可能绕过第二层