TOGOUTECH

Controller

全部标签

c# - 我如何对我的 Controller 进行单元测试以确保 Windsor 在使用 PerWebRequestLifestyle 时可以解决依赖关系

我的应用程序中有以下单元测试:[TestMethod]publicvoidWindsor_Can_Resolve_HomeController_Dependencies(){//SetupWindsorContainercontainer=newWindsorContainer();container.Install(FromAssembly.Containing<HomeController>());//Actcontainer.Kernel.Resolve(typeof(HomeController));}这样做的目的是确保我没有任何在访问该Controller上的操作

c# - ASP.NET Core 中间件向 Controller 传递参数

我正在使用ASP.NETCoreWebAPI,其中我有多个独立的WebAPI项目。在执行Controller的任何操作之前,我必须检查登录用户是否已经在模拟其他用户(我可以从DB获得)并且可以传递模拟用户Id到actions。由于这是一段可以重用的代码,我想我可以使用一个中间件:我可以从请求header获取初始用户登录信息获取模拟的用户ID(如果有)将该ID注入(inject)请求管道中,使其可供被调用的api使用publicclassGetImpersonatorMiddleware{privatereadonlyRequestDelegate_next;privateIImpers

c# - 有没有办法在 swagger-ui 页面中更改 Controller 的名称?

我正在使用Swashbuckle在我的WebApi项目中启用swagger和swagger-ui。在下图中,您可以看到我的两个Controller显示在swagger-ui页面中。它们的命名与它们在C#代码中的名称相同,但我想知道是否有办法更改此处显示的内容?这主要是因为如您所见,ManagementDashboardWidget不是用户友好的名称,因此我想将其更改为用户友好的名称。 最佳答案 从ASP.NETCore6开始,您可以使用TagsAttribute在Controller级别:[Tags("entity"

c# - IoC 框架在 MVC 应用程序中的用途是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我试图理解像StructureMap这样的IoC框架的使用,但我不禁认为这些“设计模式”只是胡说八道,使代码变得更加复杂。让我从一个我认为IoC比较有用的例子开始。我认为IoC在处理MVC框架中Controller类的实例化时很有用。在这种情况下,我正在考虑.NETMVC框架。通常Controller类的实例化是由框架处理的。所以这意味着您不能真正将任何参

c# - 设计 : How to inform controllers about data modification across application

在基于mvc的大型系统中,有负责编辑数据的View和显示该数据的View。示例:UserManagementView和UserSelectionView.每个子系统都应该知道自己是否需要更新数据,在另一个子系统对相同数据进行更改后,以便其Controller知道是否需要更新数据。我对此的想法有点像观察者模式(有点集成在c#中),所有Controller都将成为监听器,并最终会收到发生数据操纵的通知。BindingList<>例如提供ListChanged事件。同样,可以为每个数据结构创建一个接口(interface),并将更改通知Controller。这会增加开销(IMO)

c# - asp.net core 2 中基本通用 Controller 类的 HttpGet 属性名称的路由名称

我有一个通用Controller,它有几个派生Controller类。但我不知道如何处理HttpGet的路由名称,因为它需要常量。[HttpGet("{id}",Name="shouldnothardcodedhereforderivedclass")]publicvirtualasyncTask<IActionResult>Get(intid)我需要路由名称,因为在我的HttpPost函数中我想返回CreatedAtRoute(),它需要HttpGet的路由名称路由名称不能硬编码,因为所有派生类都需要有不同的路由名称。这是基本Control

c# - 来自 ControllerContext 的 ActionDescriptor

鉴于我只能访问ControllerContext而不能访问Action____Contexts获取当前正在执行的ActionDescriptor的最佳方法是什么?到目前为止,我找到的唯一方法是:newReflectedControllerDescriptor(context.Controller.GetType()).FindAction(context,context.RouteData.GetRequiredString("action"));这是最优方法吗?这个类被命名为ReflectedControllerDescriptor的事实让我想知道这个操作是否有很高的

c# - FilePathResult 的已完成事件

我想在用户完成下载后做一些事情publicclassTestController:Controller{publicFilePathResultIndex(){returnFile("path/to/file","mime");}}我尝试的是将以下事件添加到测试Controller,但它们都在用户完成下载之前触发(除了永远不会调用的析构函数)protectedoverridevoidEndExecute(IAsyncResultasyncResult){base.EndExecute(asyncResult);}protectedoverridevoid

c# - 复杂模型/子模型验证 (MVC) 的最佳方法

问题我知道有很多方法可以在MVC中进行模型验证,并且有很多关于这个主题的文档。但是,我不太确定验证模型属性的最佳方法是什么,“子模型”属于相同类型。请记住以下几点我仍然想利用TryUpdateModel/TryValidateModel方法这些“子模型”中的每一个都有强类型ViewMainModel类有一个强类型View,用于呈现整体显示View这听起来可能有点令人困惑,但我会投入一些代码来澄清。以下类为例:主模型:classMainModel{publicSomeSubModelProp1{get;set;}publicSomeSubModelProp2{get;set;}}一些子模

c# - Web API OData V4 开放类型 - 如何配置 Controller 和数据上下文

我有一个包含WebAPIOData服务层的Multi-Tenancy应用程序。我有一个支持自定义字段的新要求,这对每个租户都是唯一的,并且向我的表添加通用“customfield01”、“customfield02”列不够灵活。我探索了多种在后端描述和保存自定义数据的方法,但更具挑战性的部分似乎是扩展我的odata服务以包含每个租户的不同自定义字段。以下链接描述了带有WebAPI的odatav4中的“开放类型”:http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/use-open-ty