如何通过反射找到用postharp方面标记的类

时间:2014-11-16 03:59:25

标签: reflection postsharp

我试着用一些方法来使用postharp

我的一个自定义方面的定义如下:

<Serializable> _
<MulticastAttributeUsage(PersistMetaData:=True)> _
Public Class StringChecker
    Inherits LocationInterceptionAspect

    Public Overrides Sub OnGetValue(ByVal args As LocationInterceptionArgs)
        MyBase.OnGetValue(args)
        ..... ..... .....

当我尝试查找所有使用属性/方面标记的类时,结果总是为空。 我使用此代码在运行时发现程序集:

Dim targetClasses As IEnumerable(Of Type) = From asm In AppDomain.CurrentDomain.GetAssemblies().Where(Function(A) A.FullName.Contains("MyNameSpace")) _
                                                .SelectMany(Function(A) A.GetTypes()) _
                                                .Where(Function(T) T.IsDefined(GetType(StringChecker), True))

当我用于测试提议(普通的atttribute)时,查询会提供所需的类型。 有些人可以给我一个暗示我必须做的事情。

编辑:看起来自定义属性只能在类属性中找到..

此致 马库斯

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到:

  1. 使用ReflectionSearch但不会检索使用IAspectProvider添加的方面。
  2. 使用IAspectRepositoryService