2013-02-07 42 views
3
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 
    } 

如何将firstName和lastName注入到Person构造函数中?Unity的构造函数参数

+0

有你做所有的工作在一个单一的方法的原因是什么? (实例化一个容器,设置绑定等) –

+0

你说得对,我应该把它移出该方法。我第一次使用Unity测试了几件事... – Learner

回答