C# Unity.RegistrationByConvention.WithXXX成员实际上是方法时,可以像属性一样访问它们

C# Unity.RegistrationByConvention.WithXXX成员实际上是方法时,可以像属性一样访问它们,c#,.net,inversion-of-control,unity-container,ioc-container,C#,.net,Inversion Of Control,Unity Container,Ioc Container,在大多数示例中,以及,我看到程序集Microsoft.Practices.Unity.RegistrationByConvention.dll版本3.5.0中的类WithMappings、WithLifetime和WithName上的方法被访问,就像它们是属性一样,但当我在Reflector中查找它们时,我看到它们是方法,它们主要期望一个System.Type或System.Type数组 怎么回事?这些示例是错误的还是遗漏了什么?如果查看container.RegisterTypes方法的定义,

在大多数示例中,以及,我看到程序集Microsoft.Practices.Unity.RegistrationByConvention.dll版本3.5.0中的类WithMappings、WithLifetime和WithName上的方法被访问,就像它们是属性一样,但当我在Reflector中查找它们时,我看到它们是方法,它们主要期望一个System.Type或System.Type数组


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

如果查看container.RegisterTypes方法的定义,您将看到getFromTypes、getName、getLifetimeManager和getInjectionMembers都需要类型Func,这意味着它们需要一个方法。例如,getName定义为:

Func<Type, string> getName = null
这允许您传入一个接受类型参数并返回字符串的方法,例如标准字符串WithName.TypeNameType方法。但是,如果您希望向Unity或example提供自定义注册命名逻辑,它还为您提供了使用相同签名定义自己方法的灵活性