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...
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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un ParameterOverride comme:
Cela indique à l'unité d'approvisionnement de l'
entityName
exemple pour le constructeur avec le paramètre nommé "EntityName".Vous pouvez trouver quelques infos supplémentaires ici: http://msdn.microsoft.com/en-us/library/ff660920(v=pandp.20).aspx
OriginalL'auteur CodingGorilla