c# – Unity构造函数参数
发布时间:2020-12-15 04:21:22 所属栏目:百科 来源:网络整理
导读: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(IEnti
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构造函数? 解决方法
您可以使用ParameterOverride,如:
var p = container.Resolve<IPerson>(new ParameterOverride("EntityName",entityName)); 这告诉unity使用名为“EntityName”的参数将entityName实例提供给构造函数. 您可以在这里找到一些额外的信息:http://msdn.microsoft.com/en-us/library/ff660920(v=pandp.20).aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |