어셈블리 내의 특정 특성을 가진 메서드를 검사 할 수 있습니까? 현재 Visual C++ 프로젝트를 작업하고 있지만 C#도 괜찮습니다. 내가 parme 속성 예를 들어 현재 assmebly 내에서 모든 방법을 찾아야합니다. [XYZ]
이 적용되었습니다. 이견있는 사람?어셈블리 내에서 특정 속성을 가진 메소드를 검색 할 수 있습니까?
2
A
답변
3
비슷한 작업을 위해 Microsoft Roslyn을 사용했습니다. 꽤 쉬워야합니다.
예제 코드가 필요한 경우 알려주십시오.
이좋아,이 시도 http://blog.filipekberg.se/2011/10/20/using-roslyn-to-parse-c-code-files/이 반사가 그것에 대해도 사용할 수 있습니다
는 해당 GetCustomAttributes 방법은 주어진 멤버에 정의 된 모든 속성을 반환 ... :
그리고 너무이 게시물을 살펴
this.GetType().GetMethods()
루프 쓰루 모든 방법 및 해당 GetCustomAttributes를되어야
. 불행히도 저는 아내의 노트북에 Visual Studio가 설치되어 있지 않습니다 :)+0
안녕하세요, 아니, 제발. 그냥 일부 샘플 코드 정말 감사하겠습니다. 나는 Roslyn을 사용하지 않고있다. Reflection을 사용하고 싶습니다. – Jaggu
4
시도해보십시오. 그것은 특정 속성에 대한 방법을 얻는
MemberInfo[] members = obj.GetType().GetMethods();
foreach (MemberInfo m in members)
{
if (m.MemberType == MemberTypes.Method)
{
MethodInfo p = m as MethodInfo;
object[] attribs = p.GetCustomAttributes(false);
foreach (object attr in attribs)
{
XYZ v = attr as XYZ;
if (v != null)
DoSomething();
}
}
}
2
를 사용하여 반사를 어떤 객체를 검색하고 속성을 사로 잡고 어셈블리의 경로 감안할 때
3
:이로드 명심
static void FindAttributes(String^ assemblyPath)
{
Assembly^ assembly = Assembly::ReflectionOnlyLoadFrom(assemblyPath);
for each (Type^ typ in assembly->GetTypes())
{
for each (CustomAttributeData^ attr
in CustomAttributeData::GetCustomAttributes(typ))
{
Console::WriteLine("{0}: {1}", typ, attr);
}
}
}
응용 프로그램 도메인에 사용하는 모든 어셈블리를 포함하므로 매번 자체 AppDomain에서이 코드를 호출 할 가치가 있습니다.
관련 문제
- 1. jdom에서 속성을 검색 할 수 있습니까?
- 2. 트리거 내에서 시퀀스를 검색 할 수 있습니까?
- 3. XPath에서 XML의 특정 값을 가진 속성을 가진 노드 가져 오기
- 4. 특정 속성을 가진 링크를 선택하십시오.
- 5. .htaccess 내에서 Coldfusion cfc 메소드를 호출 할 수 있습니까?
- 6. envers를 사용하여 마지막으로 변경 한 속성을 검색 할 수 있습니까?
- 7. 루프 내에서 여러 SystemVerilog 속성을 생성 할 수 있습니까?
- 8. Magento가 상점보기에서 속성을 검색 할 수 없음
- 9. 클래스를 공통 속성을 가진 다른 클래스로 변환 할 수 있습니까?
- 10. Java를 사용하여 어셈블리 버전 (DLL)을 검색 할 수 있습니까?
- 11. 다른 속성을 가진 여러 색인에서 스핑크스 검색
- 12. 스키마 내에서 특정 대상을 지정할 수 있습니까?
- 13. Bonjour에서 특정 이름의 서비스를 검색 할 수 있습니까?
- 14. 특정 HTTP 메소드에서만 작동하는 컨트롤러 메소드를 적용 할 수 있습니까?
- 15. 이벤트 실패시 AASM이 특정 메소드를 실행하도록 할 수 있습니까?
- 16. 전체 솔루션에 대해 특정 표시된 버전을 검색 할 수 있습니까?
- 17. XSD - 주어진 속성을 가진 특정 요소의 존재를 어떻게 보장 할 수 있습니까?
- 18. HtmlPurifer를 구성하여 특정 값의 속성을 가진 태그를 제거 할 수 있습니까?
- 19. 특정 클래스 및 속성을 가진 링크 숨기기
- 20. 특정 메소드를 호출 한 다음 Eclipse에서 특정 Exeption을 catch하는 메소드를 어떻게 찾을 수 있습니까?
- 21. Jquery 특정 속성을 가진 모든 객체를 선택하십시오.
- 22. 특정 속성을 가진 모든 파일을 파이썬에서 삭제하십시오
- 23. ClassCastException 특정 속성을 가진 엔티티를 선택할 때
- 24. jquery를 사용하여 특정 속성을 가진 앵커 찾기
- 25. 개체 내에서 검색 할 수 있습니다.
- 26. C#/Resharper 5 구조적 검색, 특정 속성을 가진 클래스의 비가 상적 public 메서드가 있으면 감지하고 경고합니다.
- 27. 다중 값 속성에서 특정 값 * 만 * 가진 항목을 검색 할 수 있습니까?
- 28. 어셈블리 내에서 특정 Atribute로 모든 클래스를 나열하는 방법은 무엇입니까?
- 29. 다음과 같은 속성을 가진 CSS 파일이 있습니까?
- 30. Clojure에서 Java 메소드를 재정의 할 수 있습니까?
검색 할 C++/CLI 코드를 찾고 있습니다. 속성을 찾고있는 어셈블리가 정확합니까? – user7116
@sixlettervariables : 예. – Jaggu