C#Lambda表达式输入参数类型
我有下面的统一代码- InjectionFactory构造函数在运行时如何获得实际的容器实例(c)C#Lambda表达式输入参数类型,c#,lambda,C#,Lambda,我有下面的统一代码- InjectionFactory构造函数在运行时如何获得实际的容器实例(c) container.RegisterType(新注入工厂(c=> dbProviderFactorys.GetFactory(c.Resolve().GetValue(“DatabaseProviderName”)); 有关完整信息,请参见下面的客户端类定义- public static class IocConfig { public static void Regis
container.RegisterType(新注入工厂(c=>
dbProviderFactorys.GetFactory(c.Resolve().GetValue(“DatabaseProviderName”));
有关完整信息,请参见下面的客户端类定义-
public static class IocConfig
{
public static void RegisterDependencies(IUnityContainer container)
{
IocConfig.container = container;
container.RegisterType<IApplicationSettings, ConfigAppSettings>();
container.RegisterType<IViewModelMapper, SimpleRoomViewModelMapper>();
container.RegisterType<IRoomRepository, AdoNetRoomRepository>();
container.RegisterType<RepositoryRoomViewModelService>(new ContainerControlledLifetimeManager());
container.RegisterType<IRoomViewModelReader, RepositoryRoomViewModelService>();
container.RegisterType<IRoomViewModelWriter, RepositoryRoomViewModelService>();
container.RegisterType<DbProviderFactory>(new InjectionFactory(c =>
DbProviderFactories.GetFactory(c.Resolve<IApplicationSettings>().GetValue("DatabaseProviderName"))));
}
private static IUnityContainer container;
}
公共静态类IocConfig
{
公共静态无效注册表依赖项(IUnityContainer容器)
{
IocConfig.container=容器;
container.RegisterType();
container.RegisterType();
container.RegisterType();
RegisterType(新的ContainerControlledLifetimeManager());
container.RegisterType();
container.RegisterType();
container.RegisterType(新注入工厂(c=>
dbProviderFactorys.GetFactory(c.Resolve().GetValue(“DatabaseProviderName”));
}
专用静态IUnityContainer容器;
}
以下是InjectionFactory的定义-
public class InjectionFactory : InjectionMember
{
private readonly Func<IUnityContainer, Type, string, object> factoryFunc;
/// <summary>
/// Create a new instance of <see cref="InjectionFactory"/> with
/// the given factory function.
/// </summary>
/// <param name="factoryFunc">Factory function.</param>
public InjectionFactory(Func<IUnityContainer, object> factoryFunc)
: this((c, t, s) => factoryFunc(c))
{
}
/// <summary>
/// Create a new instance of <see cref="InjectionFactory"/> with
/// the given factory function.
/// </summary>
/// <param name="factoryFunc">Factory function.</param>
public InjectionFactory(Func<IUnityContainer, Type, string, object> factoryFunc)
{
Guard.ArgumentNotNull(factoryFunc, "factoryFunc");
this.factoryFunc = factoryFunc;
}
公共类InjectionFactory:InjectionMember
{
私有只读函数factoryFunc;
///
///使用创建的新实例
///给定的工厂函数。
///
///工厂功能。
公共注射工厂(Func factoryFunc)
:这((c,t,s)=>factoryFunc(c))
{
}
///
///使用创建的新实例
///给定的工厂函数。
///
///工厂功能。
公共注射工厂(Func factoryFunc)
{
ArgumentNotNull(factoryFunc,“factoryFunc”);
this.factoryFunc=factoryFunc;
}
c是一个IUnityContainer对象和工厂。GetUnitOfWork()返回一个对象,如InjectionFactory构造函数HI“c是一个IUnityContainer对象”中指定的。这是如何推断出来的?你能给我看更多的代码吗?c应该在RegisterType调用之前声明和赋值。在上面添加了类定义,c之前没有定义,似乎是推断出来的?c
将在InjectionFactory
c是IUnityContainer对象和Factory.GetUn中调用factoryFunc
时定义itOfWork()返回一个对象,如InjectionFactory构造函数HI“c是一个IUnityContainer对象”中指定的。这是如何推断出来的?您能给我看更多的代码吗?c应该在RegisterType调用之前声明和赋值。您好,上面添加了类定义,c之前没有定义,似乎是推断出来的?c
将在InjectionFactory
中调用factoryFunc
时定义
public class InjectionFactory : InjectionMember
{
private readonly Func<IUnityContainer, Type, string, object> factoryFunc;
/// <summary>
/// Create a new instance of <see cref="InjectionFactory"/> with
/// the given factory function.
/// </summary>
/// <param name="factoryFunc">Factory function.</param>
public InjectionFactory(Func<IUnityContainer, object> factoryFunc)
: this((c, t, s) => factoryFunc(c))
{
}
/// <summary>
/// Create a new instance of <see cref="InjectionFactory"/> with
/// the given factory function.
/// </summary>
/// <param name="factoryFunc">Factory function.</param>
public InjectionFactory(Func<IUnityContainer, Type, string, object> factoryFunc)
{
Guard.ArgumentNotNull(factoryFunc, "factoryFunc");
this.factoryFunc = factoryFunc;
}