ReactiveUI中IMutableDependencyResolver和Structuremap的问题
首先,让我说我认为这不是反应式本身的问题,这就是为什么我没有在其github repo上创建一个问题,其次,我意识到我正在使用beta版本的reactiveui. 我想使用structureMap,因为我将在WPF应用中使用插件方案,而Splat中的DI容器并未用于此类内容. 观察这些单元测试: [Fact] public void ShouldBeAbleToOverrideDefaultDependencyResolver() { Locator.Current = new ApplicationDependencyResolver(StructureMapBootstrapper.Instance.Container); Locator.CurrentMutable.InitializeSplat(); Locator.CurrentMutable.InitializeReactiveUI(); var view = Locato
182 2024-04-26
编程技术问答社区
如何在ASP.NET Core 2 MVC中通过依赖性注入设置单元测试的模型验证?
我正在构建ASP.NET Core 2 MVC应用程序.很多时候,我需要利用依赖项来验证用户输入.我希望我的验证方法可以进行单位测试,并且我希望能够将模拟的依赖项注入其中.这是我以前在MVC5中所做的事情,取得了巨大的成功,但无法确定ASP.NET Core 2等效. 这就是我在MVC5中这样做的方式: // the view model to be validated public class MyViewModel { public string Username { get; set; } } // the model validator that will have dependencies injected into it public class MyViewModelValidator : ModelValidator { private IUserService users; private MyViewModel model; publi
14 2024-04-26
编程技术问答社区
用温莎城堡解析HttpRequestMessage
我已经尝试了遵循现有帖子的建议,以使HttpRequestMessage作为Web API中服务的构造函数依赖性提供: asp web api- ioc- ioc- ioc- ioc- ioc- ioc- claseve htttprequestmessage httprequeStMessage 与Castle Windsor with Castle Windsor 此建议正常工作如果所有依赖关系只有一个构造函数.但是,当依赖关系具有多个构造函数时,依赖项分辨率会失败. 有什么想法如何扩展与多个构​​造函数合作的想法? ====================== 现有方法总结如下: 首先,在IHttpControllerActivator中解决控制器时,您将HttpRequestMessage作为附加命名参数: public IHttpController Create( HttpRequestMessage request,
18 2024-04-26
编程技术问答社区
如何解决周期性依赖问题
public class NotificationService: INotificationService{ private ILogService _logService; public NotificationService(ILogService logService){ _logService = logService; } } public class LogService: ILogService{ private INotificationService _notificationService; public LogService(INotificationService notificationService){ _notificationService = notificationService; } } 我遇到了两个类别彼此依赖的情况.我正在使用ninject.
24 2024-04-26
编程技术问答社区
POO和接口(在C#中)
我需要了解接口: 我有这个结构: Core (contain Interface) BLL (Contain object who implement interface DAL (Contain Data access) IHM (Call BLL object) 例如,我有一个接口核心. Color Speed 和一种方法: LoadVehicle(int id) //return a iVehicule with speed and color 在我的bll中,我有一个实现" core.ivehicle"的对象" bll.car". 因此,我将有一种负载方法和访问Dalfor获取基础信息 ,但达尔需要返回实现对象" bll.car".但是由于循环依赖性,我无法提及BLL. 我想念什么?我的dal如何返回对象" bll.car"实现? 解决方案 ,但达尔需要返回实现对象" bll.car". 这可能是混乱所在. 您
30 2024-04-26
编程技术问答社区
在Asp.Net Core 2.0中,配置对象是否可以在一个类库项目中注入?
我毫无疑问地在类库中设置类,将它们设置为启动c.cs中的服务,以注射并让它们按预期工作. 在我正在工作的测试应用中.我有一个数据类库项目加上我的MVC应用程序项目(Core 2.0.1和EF 2.0.1和MVC6) 在startup.cs 中 // *If* you need access to generic IConfiguration this is **required** services.AddSingleton(Configuration); services.AddOptions(); // Add our class objects so they can be injected services.Configure(Configuration.GetS
20 2024-04-26
编程技术问答社区
没有控制器的依赖性注入
我想在项目中激活电子邮件.我与"实体框架"与存储库中的数据库连接合作,服务使用此层. 我希望在没有非控制器的情况下使用实体框架和依赖项注入服务插入数据库. repository layes public void Insert(T entity) { if (entity == null) { throw new ArgumentNullException("entity"); } _entities.Add(entity); SaveChanges(); } 激活服务 public void Insert(EmailValid entity) { _repositoryBase.Insert(entity); } 非控制器类 public class EmailActivaitonKey { private readonly IActivationService _activ
6 2024-04-26
编程技术问答社区
API控制器使用服务的实例与大风组件不同吗?
我使用了此在大火中的两个儿童组件之间的数据以更新服务类别的爆炸性信息以添加通知. 我将其添加到API控制器的帖子中,并将Notify服务注入构造函数. ,然后显示出这样的大火组件: 但是由于某种原因,这仅适用于services.addsingleton,而不是服务. . 但是,当您使用类似的2个大麻组件之间的通知服务时,services.addscoped确实有效. (这是一个不同的组件) 那么,API控制器是否使用Notify服务的不同实例?还是我做错了什么? 预先感谢您.如果您需要更多信息,请告诉我. 解决方案 API控制器是否使用服务的实例与大火组件不同? 答案肯定是是 scoped Services,否对单人来说,但它变得复杂.但是我怀疑这不是您的真实问题,而 real 问题是如何为两者存储特定于用户的数据.或从外部服务修改特定用户的数据 为什么服务不同 创建一个新的控制器实例来处理每个HTTP请求.就DI而言,HTTP请
20 2024-04-26
编程技术问答社区
C# 每个 "组织 "的不同实例/SaaS的自定义代码
我正在编写一个(C#ASP.NET API)程序,该程序旨在用作SaaS.该程序具有标准功能,但是旧的(非SAA)也有每个客户的一些自定义代码与系统连接.导致每个客户的代码的不同版本. 我有一个解决方案是使用松散的耦合.但是,我该怎么做,以便在运行时调用界面的不同实例?最好是没有开关案例/if-tree. 在此解决方案上有任何帮助,但我也想知道这是否是要走的路? 在其他编程语言中,例如JavaScript您可以加载并运行代码JIT. 另一个连接的解决方案是将微服务用于需要连接到客户系统的零件.通过这样做,我可以独立于主程序更新连接器. 解决方案 您可以在依赖项注入容器中连接实现,并在运行时选择实现. 假设您有一个IDiscountCalculator接口,每个客户要求有几个不同的实现. 您将从请求中获取当前的租户/客户信息,并确定需要运行哪些实施,然后返回适当的实施. 以此示例为例(我将抽象水平保持在最低限度) services.AddS
12 2024-04-26
编程技术问答社区
在ASP.NET中间件中改变DbContext
public class RequestCultureMiddleware { private readonly RequestDelegate _next; public RequestCultureMiddleware(RequestDelegate next) { _next = next; } public async Task InvokeAsync(HttpContext context) { var cultureQuery = context.Request.Query["culture"]; if (!string.IsNullOrWhiteSpace(cultureQuery)) { var culture = new CultureI
20 2024-04-26
编程技术问答社区
依赖性注入容器
我有一个我想制作"便携式"的数据访问层库.我喜欢它要便携的原因是因为我想使用SQL Azure&Azure文件存储(例如,Data + PDF报告)以及SQL Server 2008R2并在混凝土服务器上进行文件系统存储. . 基于规格,该系统应该与以后的实现(SQL +文件系统存储)进行直播,而在遇到一定的可扩展性阈值时,我们计划移动到Azure. 数据访问类我使用实现IDATAPROVIDER接口(我构建的),并定义了任何数据访问混凝土实现应具有的方法.消耗数据访问层是通过传递IDATAPROVIDER接口和调用方法完成的: public Interface IDataProvider { public bool DoSomething(); } public class AzureDataProvider : IDataProvider { private string ConnectionString; public AzureData
14 2024-04-26
编程技术问答社区
如何在SimpleInjector中用构造函数注册通用类型?
我使用Microsoft Unity作为IOC容器,并编写了一些这样的代码: public static void RegisterTypes(IUnityContainer container) { MyContext ctx = new MyContext (); // is EntityFramework DbContext container.RegisterType(typeof(IEntityRepository), typeof(EntityRepository), new InjectionConstructor(ctx)); container.RegisterType(typeof(IEntityService), typeof(EntityService))
三层应用中的Ninject
我正在构建一个标准的三层应用程序. 1个前端的控制台应用 2业务逻辑层 3数据层 主要目的是从数据库表显示一些客户数据. 我试图通过没有从控制台到数据层的引用来遵循"依赖项注入"书中的指南,而从业务层到数据层的指南.如果需要,可以轻松地交换前端和数据层. 假设我在名为CustomerService的业务层中有一项服务,它具有GetCustomers()方法 CustomerService的构造函数ICustomerRepository so public class CustomerService { ICustomerRepository repository; public CustomerService(ICustomerRepository repository) { this.repository = repository; } public ICol
如何直接在startup.cs中使用服务
我正在尝试在我的Blazor应用程序(MVVM)中直接注入和使用服务.当我尝试从该服务调用方法时,我会收到与未正确注册服务时相同的错误消息: 我正在这样做是为了读取localstorage的值,以在startup.cs中设置语言.有关更多信息,请参见: https://learn.microsoft.com/en-us/aspnet/core/blazor/blazor/globalization-localization?view = ateaspnetcore-6.0&pivots by-user-preference-1 这就是我在startup.cs中添加服务的方式: 注射: public class Startup { private IStorageService storageService; public Startup(IConfiguration configuration, IStorageServ
14 2024-04-26
编程技术问答社区
ASP.NET Core MvcOptions 依赖性注入而不修改闭合?
在我的ASP.NET核心项目中,我当前以以下方式将IFilterMetadata依赖项注入MvcOptions> MvcOptions>: public override IServiceProvider ConfigureServices(IServiceCollection services) { services.AddProjectSpecificStuff(); IExceptionFilter exceptionFilter = null; services.AddMvc(options => { options.Filters.Add(exceptionFilter); }); var provider = base.ConfigureServices(services); exceptionFilter = provider.GetService(); return pro
12 2024-04-26
编程技术问答社区
在带有IoC容器的windows服务中用于解耦和依赖性注入的类结构
我正在编写Windows服务,我想在某些课程中使用IOC容器来解决依赖关系.我有以下简单方案. public partial class serviecclass: ServiceBase { protected override void OnStart(string[] args) { StartServer(); } public void StartServer() { //create class A // do not have an interface for ClassA as in my app there will only be //one Version of ClassA var class
14 2024-04-26
编程技术问答社区
我错了什么,是DI还是设计,我应该如何去做?
要简短简短,我目前正在写的应用程序应该模仿用户登录的当前的应用程序. 这是管理信息查询的应用程序. 由于NHibernate.ISessionFactory不允许在其连接字符串的级别上更灵活,所以我需要使用当前用户凭据动态构建连接. (顺便说一句,我不是在抱怨NH,我在每个项目上都使用的很棒.) 所以,我需要在启动时强制身份验证.许多依赖项可能受到启动的限制,而不是数据访问模块的依赖项,因为连接字符串是用户身份验证后需要加载的数据访问模块. 如果强制验证; AuthenticationPresenter告诉MembershipService使用提供的凭据; ; 关于成功的身份验证,AuthetnicationUser类的实例保留在MembershipService中,MembershipService又在singleton范围内绑定; SessionFactoryProvider取决于我的MembershipService.CurrentUser属性来
30 2024-04-26
编程技术问答社区
在领域层中整合DI容器。领域事件
在文章之后: http://www.udidahan.com/2009/06/14/域 - 事件 - 静脉/ 我们可以看到DomainEvents插入使用di容器 public static IContainer Container { get; set; } ,然后 if(Container != null) { foreach(var handler in Container.ResolveAll>()) handler.Handle(args); } 我应该在同一组件内集成DI容器,还是可以存储域对象,还是可以外部化/抽象Container.ResolveAll>()? (根据我以前的经验,我将所有DI-related的东西都放在global.asax.cs中). 从技术上讲,我只熟悉ninject di容器,但可能会理解该概念,因此您的建议/插图得到赞赏. 谢谢! 解决方案 不,没有必要.
16 2024-04-26
编程技术问答社区
单元测试网络服务响应
我目前正在C#中为ResellerClub的REST/HTTP API撰写API包装器,该API提供了花园变化的json对象中的响应.通过使用HTTPCLIENT类执行HTTP POST/GET在API端点上执行调用. json.net用于解析响应. 如何将API的API包装功能分组为API,因为大多数调用需要一级预期状态才能成功.例如,我无法测试我尚未注册的域上的CNAME记录的创建. 我知道,测试绝不应该依靠他们不安排自己的状态,而且我也被告知,测试实际上绝不应处理任何类型的持久机制,例如数据库.因此,在上述cname记录的示例中,作为测试的"安排"阶段的一部分,我应该注册一个测试域,断言它有效,然后执行实际的cname函数? 替代方案,我应该想出某种方式嘲笑转售商俱乐部API返回的JSON回复吗? 编辑:我的API类的示例(resellerclubapi.cs) private async Task DownloadString(str
36 2024-04-26
编程技术问答社区
ASP.NET Core Web API和MongoDB的多个集合和多个数据库
带有这个问题 asp.net core core core core core core core web api和带有多个收藏的蒙古多德(Mongodb)答案我可以看到单身人士的完美用途和lazy初始化的WITH 单数据库和多重收集. startup.cs public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Asset Model API", Version = "v1" }); }); ConfigureMongoDb(services); services.AddControllers() .AddJsonOpti
12 2024-04-26
编程技术问答社区