【发布时间】:2014-04-08 09:42:08
【问题描述】:
我正在使用一个外部库,我无法控制对象构造函数的命名约定。有多种构造函数,它们根据参数类型进行区分。因此,我想覆盖类型化工厂中的约定,以通过参数的确切名称检索并使用类型。
例如
GenderTemplateViewModel CreateGenderTemplateViewModel();
GenderTemplateViewModel CreateGenderTemplateViewModel(GenderTemplateModel genderTemplateModel);
GenderTemplateViewModel CreateGenderTemplateViewModel(GenderTemplateModel genderTemplateModel, string extraInfo);
因此我可以通过类型而不是参数名称来获取正确的构造函数吗? 即覆盖哪个方法以及如何覆盖
public class ParameterbyTypeNotNameTypedFactoryComponentSelector : DefaultTypedFactoryComponentSelector
{
protected override Type GetComponentType(MethodInfo method, object[] arguments)
{
return base.GetComponentType(method, arguments);
}
protected override string GetComponentName(MethodInfo method, object[] arguments)
{
return base.GetComponentName(method, arguments);
}
protected override IDictionary GetArguments(MethodInfo method, object[] arguments)
{
return base.GetArguments(method, arguments);
}
}
【问题讨论】:
标签: c# castle-windsor factory