当unit . registrationbyconvention . withxxx成员实际上是方法时,它们像属性一样被

本文关键字:属性 一样 withxxx registrationbyconvention unit 成员 实际上 方法 | 更新日期: 2023-09-27 18:16:07

在这里,这里和这里的大多数示例中,我看到来自汇编Microsoft.Practices.Unity.RegistrationByConvention.dll版本3.5.0的类WithMappings, WithLifetimeWithName的方法被访问,就像它们是属性一样,但是当我在反射器中查找它们时,我看到它们是方法,它们期望(大多数)System.TypeSystem.Type数组。

怎么回事?这些例子是错的还是我遗漏了什么?

当unit . registrationbyconvention . withxxx成员实际上是方法时,它们像属性一样被

如果你看容器的定义。你会看到getFromTypes、getName、getLifetimeManager和getInjectionMembers都期望类型Func,这意味着它们期望一个方法。例如,getName定义为:

Func<Type, string> getName = null

这允许您传入一个接受Type参数并返回字符串的方法,例如标准的string WithName.TypeName(Type type)方法。然而,如果你想为Unity提供自定义的注册命名逻辑,它也给了你使用相同签名定义你自己的方法的灵活性。