0 votes

StructureMap WithCtorArg - référence manquante ?

J'essaie de me lancer dans l'utilisation de Structure Map. J'utilise la version 2.5.3.

J'ai construit un simple "boot strapper", mais je n'arrive pas à le faire compiler. J'obtiens l'erreur :

StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression' ne contient pas de définition pour 'WithCtorArg' et aucune méthode d'extension 'WithCtorArg' acceptant un premier argument de type 'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression' n'a pu être trouvée (il vous manque une directive using ou une référence d'assemblage ?)

Qu'est-ce que je rate ?

le code que j'essaie de compiler est ici :

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

1voto

Darin Dimitrov Points 528142

Si votre classe a un constructeur non par défaut avec des arguments de type simple comme string, int, etc... vous pouvez essayer ceci :

x.ForRequestedType<IProductsRepository>()
 .TheDefault
 .Is
 .OfConcreteType<SqlProductsRepository>()
 .WithCtorArg("connectionString")
 .EqualToAppSetting("SqlConnection");

0voto

Andrew Hanson Points 965

J'ai rencontré un problème similaire.

Si vous utilisez la version générique de ForRequestedType, vous devez faire comme darin l'a suggéré et utiliser l'attribut Le Défaut.est.de.type.béton syntaxe

Si vous utilisez la version non générique de ForRequestedType, vous pouvez procéder comme suit :

x.ForRequestedType(typeof (ProductsRepository))
 .TheDefaultIsConcreteType(typeof(SqlProductsRepository))
 .WithCtorArg("connectionString")
 .EqualToAppSetting("SqlConnection");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X