L'unité des paramètres du constructeur

class Entity:IEntityName
{
    #region IEntityName Members

    public string FirstName { get; set; }
    public string LastName { get; set; }
    #endregion
}

public class Person:IPerson
{
    public IEntityName EntityName;

    public Person()
    {
    }

    public Person(IEntityName EntityName)
    {
        this.EntityName = EntityName;
    }

    public string ReverseName()
    {
        return string.Format("Your reverse name is {0} {1}",EntityName.LastName, EntityName.FirstName);
    }

    public override string ToString()
    {
        return string.Format("Name is {0} {1}", EntityName.FirstName, EntityName.LastName);
    }
}

//Main Method

private static string DisplayReverseName(string fName,string lName)
{
        IUnityContainer container = new UnityContainer();
        container.RegisterType<IPerson, Person>().RegisterType<IEntityName,Entity>();

        IEntityName entityName = container.Resolve<IEntityName>();

        entityName.FirstName = fName;
        entityName.LastName = lName;
        var p = container.Resolve<IPerson>(); 
        return p.ReverseName(); // firstName and lastName are still null
    }

Comment puis-je injecter firstName et lastName en Personne constructeur ?

Est-il une raison pour laquelle vous êtes en train de faire tout le travail en une seule méthode? (l'instanciation d'un conteneur, la configuration des liaisons, etc)
Vous avez raison, je devrais l'avoir déplacé de la méthode. J'ai été tester quelques petites choses avec l'Unité pour la première fois...

OriginalL'auteur Learner | 2013-02-07