diff --git a/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs b/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs
index 7efc7b54..6a489af0 100644
--- a/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs
+++ b/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs
@@ -60,7 +60,7 @@ namespace Spring.Aop.Framework
/// if the supplied is an AOP proxy type.
public static bool IsAopProxyType(Type objectType)
{
- return IsCompositionAopProxyType(objectType) || IsDecoratorAopProxyType(objectType);
+ return IsCompositionAopProxyType(objectType) || IsDecoratorAopProxyType(objectType) || IsInheritanceAopProxyType(objectType);
}
///
@@ -77,7 +77,7 @@ namespace Spring.Aop.Framework
///
public static bool IsAopProxy(object instance)
{
- return IsCompositionAopProxy(instance) || IsDecoratorAopProxy(instance);
+ return IsCompositionAopProxy(instance) || IsDecoratorAopProxy(instance) || IsInheritanceAopProxy(instance);
}
///
diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs
index 653355c3..29e8afa1 100644
--- a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs
+++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs
@@ -22,6 +22,8 @@ namespace Spring.Aop.Framework.DynamicProxy
public void TargetIsNotAProxy()
{
Assert.False(AopUtils.IsAopProxy(_target));
+ Assert.False(AopUtils.IsInheritanceAopProxy(_target));
+ Assert.False(AopUtils.IsInheritanceAopProxyType(_target.GetType()));
}
[Test]
@@ -69,8 +71,12 @@ namespace Spring.Aop.Framework.DynamicProxy
{
var proxy = (TestObject)ctx["michael"];
Assert.AreEqual("Michael", proxy.Name);
+
Assert.True(AopUtils.IsInheritanceAopProxyType(proxy.GetType()));
+ Assert.True(AopUtils.IsAopProxyType(proxy.GetType()));
+
Assert.True(AopUtils.IsInheritanceAopProxy(proxy));
+ Assert.True(AopUtils.IsAopProxy(proxy));
}
}
}