Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何通过DAL中存在的BL访问Web项目中的类_Oop_Asp.net Identity - Fatal编程技术网

Oop 如何通过DAL中存在的BL访问Web项目中的类

Oop 如何通过DAL中存在的BL访问Web项目中的类,oop,asp.net-identity,Oop,Asp.net Identity,我的项目中有3层 1) DAL 2) BL 3) Web Web只能访问BL,其中BL可以访问DAL。我在DAL中有ASP.NET身份模型类ApplicationUser。在我的Web项目中,有一个类Startup.auth.cs,需要访问该类。我想通过BL访问它,这是怎么可能的?启动。Auth.cs在任何方面都不是业务逻辑的一部分-它是网站如何了解身份验证的实现细节。所以BL不应该知道这门课。我建议重构您的类,这样BL就不需要使用Startup.Auth,否则您会得到一个大意大利面。确保您的

我的项目中有3层

1) DAL
2) BL
3) Web

Web只能访问BL,其中BL可以访问DAL。我在DAL中有ASP.NET身份模型类
ApplicationUser
。在我的Web项目中,有一个类
Startup.auth.cs
,需要访问该类。我想通过BL访问它,这是怎么可能的?

启动。Auth.cs
在任何方面都不是业务逻辑的一部分-它是网站如何了解身份验证的实现细节。所以BL不应该知道这门课。我建议重构您的类,这样BL就不需要使用
Startup.Auth
,否则您会得到一个大意大利面。

确保您的整个应用程序位于同一个命名空间中。现在,您可以在DAL中创建类的引用,并在DAL的特定方法中使用它。现在通过创建DAL的引用在BL中调用这个方法。

那么,我需要做哪些更改?正如我在DAL中提到的ApplicationUser类,如何在Startup.auth.cs中访问它?我需要将ApplicationUser类保留在Web项目中吗?我的startup.auth.cs位于Web项目中,我想访问当前驻留在DAL中的ApplicationUser类。哦,在这种情况下,我看不出在Web项目中引用DAL有任何错误。是的,我现在正在做的就是这样。但是如果我不想在我的网站上引用DAL呢?我只想在Web中保留引用BL,并想知道是否有些BL我如何能够访问Web中的ApplicationUser。可能吗?不,不可能。您希望访问明确不允许访问的内容—不符合逻辑。