这对有些人来说是显而易见的,但是..。是否有一种使用LightInject解析未注册类型的方法?另外,在没有显式注入可读性的情况下,用DI框架自动解析对象是一种很好的实践吗?
在我的示例中,我将超级全功能框架(可能是最慢的)与最轻(也是最快)的框架进行比较。这并不完全是个错误。
构造函数注入(无容器)
private static void ComposeObjects()
{
var repository = new CSVRepository();
var viewModel = new PeopleViewerViewModel(repos
我刚刚开始在我的MVC项目中使用LightInject,它运行得很好。但我也想把它用于我的SignalR集线器。因此,我遵循了的指示。但是,我在任何地方都看不到ServiceContainer.RegisterHubs方法。我已经安装了LightInject,LightInject.Mvc和LightInject.SignalR的dll。
using log4net.Config;
using LightInject;
using Microsoft.Owin;
using Owin;
using MvcProject;
using MvcProject.ApplicationServi
从“LightInject”迁移到.netcore DI容器。
.netcore DI容器与以下LightInject相关注册的等效值是什么?
a. container.RegisterConstructorDependency<IBar>((factory, parameterInfo) => new Bar());
b. container.RegisterInstance<Func<string, string>>
((username, password) => new MemCache(userId, passw
我在我的大多数DryIoc Web 2+解决方案中使用了LightInject和.Net。使用新的体系结构,我更愿意在下一个ESB实现中使用NServiceBus或MassTransit。但是,我找不到任何有用的代码引用来帮助我用DryIoc或LightInject实现NServiceBus/MassTransit。其他IoC对我来说不是一种选择,因为我公司的要求是只从上述两种选择中选择。非常感谢社会各界的任何帮助。
我试图使用LightInject和MediatR来构建通用请求处理程序。基本上,我的类型如下:
public class SomeType { }
public class InheritedType : SomeType { }
public class Handler : IAsyncRequestHandler<SomeType, SomeResponseType> { }
我已将Handler类型注册到LightInject容器中,如下所示:
registry.RegisterAssembly(typeof(SomeType).Assembly, (s, type) =&g
我有一个场景,其中有多个实现相同接口的类。消费类是将所有接口实现作为一个列表来获取,这样它就可以在所有实例上调用方法。
public interface IDoSomething
{
void Do();
}
public class Dance : IDoSomething
{
public void Do() { }
}
public class Eat : IDoSomething
{
public void Do() { }
}
public class Person
{
public Person(IEnumerable<IDoSomet
我正在尝试将服务实例注入到我的NameController中。服务使用来自多个服务类的方法,所以我使用多个接口继承来实现这一点。
使用我提供的代码,使用_oneThreeService,我实际上能够访问OneService.cs和TwoService.cs包含的所有方法。然而,当我运行应用程序时,我得到一个错误,它声明:InvalidOperationException: Unable to resolve service for type 'ServiceClassLibrary.IOneThreeService' while attempting to activate &
我有一个ASP.NET MVC应用程序,最近我升级到使用LightInject DI。然而,我似乎不能让Hangfire正确运行,即使使用LightInject扩展! 我在Startup.cs中的Hangfire设置: public void Configuration(IAppBuilder app)
{
var container = new ServiceContainer();
container.RegisterControllers(typeof(Web.Controllers.DashboardCo
我使用的是Umbraco 8.4版本,我的网站运行在azure应用程序服务上。我已经克隆了现有的网站和数据库,并将其发布到另一个azure应用程序服务上。当我打开网站时,我得到下面的错误。 Boot failed: Umbraco cannot run. See Umbraco's log file for more details.
-> Umbraco.Core.Exceptions.BootFailedException: Boot failed.
-> System.Xml.XmlException: Data at the root level is inv
我正在尝试使用照明弹用于xamarin应用程序。公共代码位于单独的可移植类库中。此项目配置为TargetFrameWorkProfile Profile78。当我添加照明弹出4.0.6时,会出现以下错误:
Attempting to gather dependencies information for package 'LightInject.4.0.6' with respect to project 'ProjectName', targeting '.NETPortable,Version=v4.5,Profile=Profile78'
我对这两个库都是新手,在承诺在大型项目中使用它们之前,我需要澄清我在单元测试中自动锁定低代码工作的选项。
在Google上花了一段时间之后,我得出的结论是,与其他国际奥委会/模仿产品配对不同的是,LightInject+Nsubstitute没有现成的插件库来简化单元测试安排阶段的无事默认模拟的声明。
我已经阅读了LightInject文档中关于如何为单元测试的作用域覆盖一个临时增强的模拟对象的LightInject容器的文档,但是单元测试可能触及的所有未做任何默认隔离模拟怎么办?有没有一种方法可以在LightInject容器中自动创建它们?
我要寻找的内部IOC容器行为是:
public c
在为MVC控制器设置LightInject时,在注入器设置中调用container.EnableMvc();时会出现错误。
错误:
方法未找到:'Void LightInject.WebContainerExtensions.EnablePerWebRequestScope(LightInject.IServiceContainer)‘’
来源:
public static void Register() {
var container = new ServiceContainer();
container.ScopeManagerProvider = new
我在一个MvvmCross项目中使用了iOS v6.2.1,并得到以下异常: MvvmCross.Exceptions.MvxIoCResolveException已被抛出。未能解析Countr.Core.Services.IMediaManagerService类型。为了解决这个问题,我在App.cs中添加了一些调试代码。
using MvvmCross.IoC;
using Countr.Core.ViewModels;
using Countr.Core.Services;
using MvvmCross;
using MvvmCross.ViewModels;
using System
我被泛型和一些建议搞得焦头烂额。假设我有以下接口:
public interface IThing<T>
{
string DoStuff(T input);
}
以及以下实现:
public class GenericThing<T> : IThing<T> where T : Person
{
public string DoStuff(T input)
{
return typeof(T).Name;
}
}
和
public class GenericThing2<T> : IThing<
在下面的代码中,我试图将一个ViewModel注入到一个视图中,而ViewModel需要一个模型来包装,以及容器中的另一个服务。该模型没有注册,因为它不是真正的“服务”。
我如何:
( a)不必提供IService实例作为参数(让容器解析它),
( b)不必为我的ViewModels注册工厂(会有很多)
因此,我真正要求容器做的是将我的模型(我传递的模型作为参数传递)当作在调用GetInstance期间它是一个注册的“服务”。
如果这在LightInject中是不可能的,那么是否有这样的容器呢?
public static class Program
{
public static v
我想做一个简单的多类型注册的解析(最终是构造函数注入,但是使用.Resolve来看看Unity是否能够做这样的事情。
在下面的每种情况下,Unity在它应该解决2的地方解决0个项目。
在unity中是否有一些开关开启了2007年后的行为?或者我只是彻底错过了什么?
下面是我的代码:
public interface IFoo {}
public class Foo1 : IFoo{}
public class Foo2 : IFoo{}
class Program
{
static void Main(string[] args)
{
var containe
可能重复:
我有一组类的定义如下:
namespace VGADevices.UsingAbstractClass
{
public abstract class VGA
{
public abstract int HorizontalResolution { get; set; }
public abstract int VerticalResolution { get; set; }
}
public class LCDScreen : VGA
{
public override int Hori