반사

2014-11-16 6 views
0

를 통해 postsharp 측면 태그 클래스를 찾기 위해 어떻게 정의 측면 중 하나의 정의의 모습 postsharp에게반사

를 사용하는 몇 가지 방법을 적격 심사 :

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

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

나는 모든 클래스를 찾으려고 속성/애스펙트 태그가 붙은 결과는 항상 비어 있습니다. 나는 런타임에 assemblys을 발견하기 위해이 코드를 사용 : 나는 시험 제안서, 일반 atttribute을 위해 사용하는 경우

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)) 

는, 쿼리가 espected 유형을 제공합니다. Hoppefully 일부는 내게 내가해야 할 힌트를 줄 수 있습니다.

편집 : 그것은 .. 속성은 클래스 propertys에서 찾을 수있는 사용자 정의처럼

안부, 마르쿠스 보이는

답변

0

그것을 할 수있는 두 가지 방법이 있습니다 :

  1. 사용 ReflectionSearch가 그러나 IAspectProvider로 추가 된 요소는 검색하지 않습니다.
  2. 사용 IAspectRepositoryService
+0

안녕하세요 가엘, 당신의 빠른 응답 주셔서 감사합니다. ReflectionSearch에 대한 문서에서 컴파일 타임에만 사용할 수있는 힌트를 발견했습니다. 맞습니까? –

+0

예, 이것은 PostSharp 컴파일 중에 만 작동합니다. –