代码之家  ›  专栏  ›  技术社区  ›  ilivewithian

StructureMap WithTorArg-缺少引用?

  •  0
  • ilivewithian  · 技术社区  · 16 年前

    'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression'不包含'WithTorArg'的定义,并且没有扩展方法'WithTorArg'接受类型的第一个参数'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression找不到“”(是否缺少using指令或程序集引用?)

    我试图编译的代码如下:

    using DomainModel.Abstract;
    using DomainModel.Concrete;
    using StructureMap;
    using StructureMap.Pipeline; //The only WithCtorArg methods I can find are in this namespace, it didn't help.
    
    namespace WebUI
    {
    public class ContainerBootstrapper
    {
        public static void BootstrapStructureMap()
        {
            // Initialize the static ObjectFactory container
            ObjectFactory.Initialize(x =>
            {
                x.ForRequestedType<IProductsRepository>()
                    .TheDefaultIsConcreteType<SqlProductsRepository>()
                    .WithCtorArg("connectionString")
                    .EqualToAppSetting("SqlConnection");
            });
        }
    }
    }
    
    3 回复  |  直到 16 年前
        1
  •  1
  •   Darin Dimitrov    16 年前

    x.ForRequestedType<IProductsRepository>()
     .TheDefault
     .Is
     .OfConcreteType<SqlProductsRepository>()
     .WithCtorArg("connectionString")
     .EqualToAppSetting("SqlConnection");
    
        2
  •  0
  •   Andrew Hanson    16 年前

    如果您使用的是ForRequestedType的通用版本,则必须按照darin的建议执行,并使用 TheDefault.Is.OfConcreteType 语法

    x.ForRequestedType(typeof (ProductsRepository))
     .TheDefaultIsConcreteType(typeof(SqlProductsRepository))
     .WithCtorArg("connectionString")
     .EqualToAppSetting("SqlConnection");
    
        3
  •  0
  •   robaker    10 年前

    从以下文档: http://structuremap.github.io/registration/inline-dependencies/ 我现在使用如下内容:

    x.For<ProductsRepository>()
     .Use<SqlProductsRepository>() 
     .Ctor<string>("connectionString").Is("SqlConnection")