2017-04-26 18 views
1

MSDN,使用UnityContainer类的Resolve<T>()方法如下:找不到解决<T>方法UnityContainer

var controller = container.Resolve<ManagementController>(); 

但是,我无法找到UnityContainer类定义方法。我只能看到这个:

public class UnityContainer : IUnityContainer, IDisposable 
{ 
    // Other methods 
    public object Resolve(Type t, string name, params ResolverOverride[] resolverOverrides); 
    public IEnumerable<object> ResolveAll(Type t, params ResolverOverride[] resolverOverrides); 
    // Other methods 
} 

我使用错误的软件包或其他东西吗?

这些是我安装的软件包。

using Microsoft.Practices.Unity; 
using Microsoft.Practices.Unity.Configuration; 
+0

你安装了什么版本? –

回答

2

在Visual Studio中,把你的光标放在Resolve<T>方法,然后按F12键,它会去:UnityContainerExtensions

这是如果您需要它,扩展方法和代码是here

1

它在UnityContainerExtensions类中。正如@CodingYoshi提到的,​​如果你做了F12或者定义,你会发现整个班级。

这是班级。

using System; 
using System.Collections.Generic; 
using System.Diagnostics.CodeAnalysis; 

    namespace Microsoft.Practices.Unity 
    { 
     // 
     // Summary: 
     //  Extension class that adds a set of convenience overloads to the Microsoft.Practices.Unity.IUnityContainer 
     //  interface. 
     public static class UnityContainerExtensions 
     { 
      // 
     // Summary: 
     //  Resolve an instance of the default requested type from the container. 
     // 
     // Parameters: 
     // container: 
     //  Container to resolve from. 
     // 
     // overrides: 
     //  Any overrides for the resolve call. 
     // 
     // Type parameters: 
     // T: 
     //  System.Type of object to get from the container. 
     // 
     // Returns: 
     //  The retrieved object. 
     public static T Resolve<T>(this IUnityContainer container, params ResolverOverride[] overrides); 
     // 
     // Summary: 
     //  Resolve an instance of the requested type with the given name from the container. 
     // 
     // Parameters: 
     // container: 
     //  Container to resolve from. 
     // 
     // name: 
     //  Name of the object to retrieve. 
     // 
     // overrides: 
     //  Any overrides for the resolve call. 
     // 
     // Type parameters: 
     // T: 
     //  System.Type of object to get from the container. 
     // 
     // Returns: 
     //  The retrieved object. 
     public static T Resolve<T>(this IUnityContainer container, string name, params ResolverOverride[] overrides); 
     // 
     // Summary: 
     //  Return instances of all registered types requested. 
     // 
     // Parameters: 
     // container: 
     //  Container to resolve from. 
     // 
     // resolverOverrides: 
     //  Any overrides for the resolve calls. 
     // 
     // Type parameters: 
     // T: 
     //  The type requested. 
     // 
     // Returns: 
     //  Set of objects of type T. 
     // 
     // Remarks: 
     //  This method is useful if you've registered multiple types with the same System.Type 
     //  but different names. 
     //  Be aware that this method does NOT return an instance for the default (unnamed) 
     //  registration. 


public static IEnumerable<T> ResolveAll<T>(this IUnityContainer container, params ResolverOverride[] resolverOverrides); 


     } 
    } 
相关问题