0

構造マップを使い始めようとしています。バージョン2.5.3を使用しています。

シンプルなブートストラッパーを作成しましたが、コンパイルできません。エラーが発生します:

「StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression」には「WithCtorArg」の定義が含まれておらず、「StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression」タイプの最初の引数を受け入れる拡張メソッド「WithCtorArg」が見つかりませんでした(あなたは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");
        });
    }
}
}
4

3 に答える 3

1

クラスに、string、int などの単純な型引数を持つデフォルト以外のコンストラクターがある場合は、これを試すことができます。

x.ForRequestedType<IProductsRepository>()
 .TheDefault
 .Is
 .OfConcreteType<SqlProductsRepository>()
 .WithCtorArg("connectionString")
 .EqualToAppSetting("SqlConnection");
于 2009-07-18T09:08:45.917 に答える
0

古いプロジェクトを StructureMap 3.1.6.186 にアップグレードしていますが、WithCtorArg() を解決できませんでした。ここのドキュメントから: http://structuremap.github.io/registration/inline-dependencies/代わりに次のようなものを使用しています:

x.For<ProductsRepository>()
 .Use<SqlProductsRepository>() 
 .Ctor<string>("connectionString").Is("SqlConnection")
于 2015-07-16T09:22:16.310 に答える