C#Lambda表达式输入参数类型

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

我有下面的统一代码-

InjectionFactory构造函数在运行时如何获得实际的容器实例(c)

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;
        }