2011-04-13 43 views
0

IsClosingTypeOf是否仍然存在? TypeExtensions中的等效方法是什麼?Autofac 2.4.5.724針對ReflectionExtensions的API更改IsClosingTypeOf

我想我必須硬着頭皮來安裝hg並下載代碼。我一直在試圖避免這樣做了一段時間,現在......我只是非常忙,現在最後期限;)

更新這是分支代碼2.3

public static bool IsClosingTypeOf(this Type type, Type openGenericType) 
{ 
    Enforce.ArgumentNotNull(type, "type"); 
    Enforce.ArgumentNotNull(openGenericType, "openGenericType"); 
    return type.IsGenericType && type.GetGenericTypeDefinition() == openGenericType; 
} 

這不是與IsClosedTypeOf一樣,我嘗試用IsClosedTypeOf替代IsClosingTypeOf,但沒有運氣,我的測試打破了。

+0

能否請您提供您所使用的參數的例子定義?謝謝! – 2011-04-13 08:08:04

+0

另外,請指出您使用的Autofac的具體版本 - 我們在一個或兩個版本之前修復了此功能中的一些錯誤。 – 2011-04-13 11:01:59

回答

0

您是否在尋找IsClosedTypeOf在類型Autofac.TypeExtensions?它在trunk作爲

/// <summary>Determines whether the candidate type supports any base or 
    /// interface that closes the provided generic type.</summary> 
    /// <param name="this"></param> 
    /// <param name="openGeneric"></param> 
    /// <returns></returns> 
    public static bool IsClosedTypeOf(this Type @this, Type openGeneric) 
    { 
     if (@this == null) throw new ArgumentNullException("this"); 
     if (openGeneric == null) throw new ArgumentNullException("openGeneric"); 

     if (!(openGeneric.IsGenericTypeDefinition || openGeneric.ContainsGenericParameters)) 
      throw new ArgumentException(string.Format(TypeExtensionsResources.NotOpenGenericType, openGeneric.FullName)); 

     return @this.GetTypesThatClose(openGeneric).Any(); 
    } 
+0

謝謝吉姆,我試過了,但是我的測試失敗了。看起來從2.3到2.4有一些變化 – CRG 2011-04-13 04:12:26