有没有办法将AutoFac设置为使用PropertiesAutowired(true)作为所有注册类型的默认值。
也就是说,我不想一直使用".PropertiesAutowired(true)“
var builder = new ContainerBuilder();
builder.RegisterType<Logger>()
.PropertiesAutowired(true)
.SingleInstance();
我正在为WinForms应用程序开发一个基于MVP的图形用户界面架构,并希望使用Autofac来跟踪不同的部分。我经常遇到循环组件依赖,希望能在正确的方向上轻轻地推进。
这个架构是基于 post的,其中视图是我能得到的最被动的。视图不包含对演示者的引用。视图在构造时传递给演示者。因此,在非依赖注入的世界中,你可以这样开始你的程序:
var MainView = new MainView();
var mainPresenter = new MainPresenter(mainView, new DataRepository());
Application.Run(mainView);
好的,所
我有一部分代码具有如下所示的依赖关系:
public class MyPage : Page //ASPX WebForms page
{
public IPersonBl PersonBl { get; set; }
}
public class PersonBl : IPersonBl
{
public PersonBl(ISomeMagicBl magicBl){...}
}
public class SomeMagicBl : ISomeMagicBl
{
public IPersonBl PersonBl { get; set; }
pub
我正在设计一个n层应用程序,使用存储层/服务层/表示层,使用c#.net、web和Autofac容器。这是我的困境。我正在尝试对我的web控制器进行单元测试,但是我的存储库有一个属性依赖于IPrincipal,我想将该属性注入到存储库层。我想创建一个MockUser(IPrincipal)并将这个对象注入到我的存储库中。这是我当前的层次结构,我的控制器是用服务对象注入的构造函数,我的服务对象是用我的存储库对象注入的构造函数。这部分似乎有效。但是由于某种原因,每次我运行测试时,主体属性都是空的。请检查下面的代码,并让我知道我做错了什么:
Repository Base Class:
prote
尝试使用autofac通过属性进行依赖项注入。
实例始终为空,并且没有注入任何依赖项。下面是需要注入属性的类。
public class UserAccount
{
public IAccountService AccountService { get; set; }
public string Message()
{
return AccountService.Message();
}
}
我尝试了三种不同的方法来注入属性,但都没有成功
方法1:
builder.Register(c => {
var r
我正在处理一个Windows 8.1应用程序,我有一个带有公共属性的基类。
public class ViewModelBase
{
public ISomeClass MyProp {get;set;}
}
我的派生类如下所示
public class MainViewModel : ViewModelBase
{
private readonly INavigation _navigation;
public MainViewModel(INavigation navigation)
{
_navigation = navigation;
首先,让我们看一下代码: using System;
using Autofac;
namespace PropertyInjectionAutofacPoC
{
public interface IInterfaceA { }
public interface IInterfaceB
{
IInterfaceA ClassA { get; set; }
}
public class ClassA : IInterfaceA { }
public class ClassB : IInterfaceB
{
我有一个多租户应用程序。我必须用Autofac解析类型。我能做到..。这并不是很困难。在这里,我是如何做到的:
第一解
var tenantIdentifier = new TenantIdentificationStrategy();
var mtc = new MultitenantContainer(tenantIdentifier, container);
mtc.ConfigureTenant("1", t =>
{
t.RegisterType<MultiTenant.ModuleModule1>()
.As<
我正在我的ASP.NET MVC 5 web应用程序中使用OWIN中间件(所以使用startup.cs而不是global.asax)连接Autofac依赖项注入,并试图使用属性注入在Controller中设置一个公共变量。
我在玩属性注入,让Autofac在LoginController中自动设置Test。
public interface ITest
{
string TestMethod();
}
public class Test : ITest
{
public string TestMethod()
{
return "Hello w
我正在尝试使用Service Stack的缓存工具。它们是通过RequestContext访问的,而后者是由IOC在您的服务中注入的。
如果您使用的是默认的Funq,那么它可以正常工作,当您挂起AutoFac时,它不能工作,RequestContext为null,我不知道如何配置autofac来构建它。有什么线索吗?我的AutoFac配置:
var builder = new ContainerBuilder();
//Now register all dependencies to your custom IoC container
builder.RegisterAssemblyTyp
我需要一些帮助。我试图使用Autofac来获取一些需要自定义媒体格式化程序的依赖项。我跟踪了Wiki,但有点让人困惑。我试图为媒体格式化程序使用属性注入,因为它需要在全局配置中注册。
代码:
public class UserMediaFormatter : JsonMediaTypeFormatter
{
public UsersRepository repository { get; set; }
}
public class WebApiApplication : System.Web.HttpApplication
{
GlobalConfiguration.Co
如果我在一个类中有两个具有相同接口类型的属性,并且我想为每个属性注入两个不同的conrete类型,那么我该如何使用autofac来做到这一点呢?
例如:
class A : IA
{
public IB PropertyB { get; set; }
public IB PropertyC { get; set; }
public A(IB b, IB c)
{
PropertyB = b;
PropertyC = c;
}
public void PrintB()
{
Property
我学习和试验Java泛型已经有一段时间了,但我遇到了一些我无法解释的问题。以以下代码为例:
public class Question {
public <T> Sub<T> getSub(Class<T> c) {
return new Sub<T>(c);
}
public class Sub<S> {
private Class<S> c;
public Sub(Class<S> c) {
this.c = c
我需要限制我可以在RunTime中的构造函数中放什么。我有简单的课程:
class Human
{
public string Name { get; set; } = "John";
public int Age { get; set; } = 20;
public bool IsAlive { get; set; } = true;
public override string ToString()
{
return $"Name: {Name}, Age: {Age}, Is alive: {Is
我有以下设置
public interface IObject
{
string Name { get; set;}
}
public class ConcreteObject : IObject
{
public string Name { get; set; }
}
public ActionResult Index(IObject myObject)
{
return View();
}
我有一个实现IObject的具体类,我正在使用依赖注入将这个具体类绑定到接口。
使用Autofac,我还有以下设置
var builder = new C
我有基本控制器,我尝试了属性注入,但不是工作...
public class BaseController : Controller
{
public ILoggingService loggingService { get; set; }
public BaseController()
{
}
}
这是我的Autofac配置...
var builder = new ContainerBuilder();
// builder.Register(c => new BaseController { loggingService = c.Resolve
在Java中的for-each循环中使用泛型时,我遇到了一个奇怪的编译器错误。这是一个Java编译器错误,还是我真的遗漏了什么?
这是我的整个班级:
public class Generics<T extends Object> {
public Generics(T myObject){
// I didn't really need myObject
}
public List<String> getList(){
List<String> list = new ArrayList<String>();
我无法将属性注入到自定义数据批注验证属性中
public class CustomValidationAttribute : ValidationAttribute
{
public ILogger Logger { get; set; }
public CustomValidationAttribute(string keyPointer)
{ }
public override bool IsValid(object value)
{
// Implementation here
return true;
我有两个基本控制器:
public class FirstBaseController : ApiController {}
public class SecondBaseController : ODataController {}
我还有一个用于调试的全局过滤器,我需要进行属性注入才能传入log4net。
我尝试通过执行以下操作为两个控制器注册过滤器:
builder.RegisterType<DebugAttribute>()
.AsWebApiFilterFor<FirstBaseController>()
.AsWebApiFilterFor<S
当我期望每个API请求有一个实例时,Autofac将解析为两个单独的实例。
在我的一个域事件处理程序中,域处理程序通过属性注入引用dispatcher对象。
这里的问题是,我没有看到UserContext的相同对象实例,其中我在通过DomainEvent.dispatcher.Raise();调用的域事件处理程序中注入和修改了through控制器。
我遵循与Autofac文档相同的指令。有人能说出我在这里所缺少的东西吗?
//Auotfac registration
public class AutofacModule : Module
{
protected override v
我正在将一个代码库转换为使用polysemy,并且在转换我的LFresh typeclass from unbound-generics使用时遇到了问题。我需要的两个操作都有签名 avoid :: LFresh m => [AnyName] -> m a -> m a
lunbind :: (LFresh m, Alpha p, Alpha t) => Bind p t -> ((p, t) -> m c) -> m c 它们显然是高阶的。我想创建一个与LFresh类相对应的效果,并通过unbound-generics提供的LFreshM monad
在学习泛型时,我了解了Type参数的约束。其中一个约束是新()约束。据微软称:
类型参数必须具有公共的无参数构造函数。当与其他约束一起使用时,必须最后指定新()约束。
现在我有了这样的密码。
using System;
namespace Test
{
class A { }
struct S { }
enum E { }
class Generics
{
public static void GenericMethod<T>() where T : new()
{
}
我试图有条件地分配一个本地打开数组变量,以便它指向一个const打开数组参数:
uses
System.Generics.Collections,
System.Generics.Defaults;
type
TArray = class(System.Generics.Collections.TArray)
public
class function SameValues<T>(const AValuesA: array of T; AValuesB: array of T; const AComparer: IEqualityComparer
有以下几点:
public class AClass
{
public ADependent Dependent { get; set; }
}
public class ADependent
{
public ADependent(AClass ownerValue) {}
}
通过以下的注册..。
builder.RegisterType<AClass>().PropertiesAutowired().InstancePerDependency();
builder.RegisterType<ADependent>().PropertiesAutowired