2011-09-22 3 views

답변

0

어셈블리 레벨 속성의 정보를 읽으려면 당신은 리플렉션을 사용해야합니다.

public static T GetAttribute<T>(this Assembly asm) where T : Attribute { 
    if (asm == null) { throw new ArgumentNullException("asm"); } 
    var attrs = asm.GetCustomAttributes(typeof(T), false); 
    if (attrs.Length != 1) { 
    throw new ApplicationException(
     String.Format("Found {0} instances of {1} in {2}. Expected 1", 
     attrs.Length, typeof(T).Name, asm.FullName)); 
    } 
    return (T)(attrs[0]); 
} 

따라서 해당 어셈블리에서, 유형, TargetType을 제공 : 그러나 약간의 도우미로 아주 쉽게

string copyright = typeof(TargetType).Assembly.GetAttribute<AssemblyCopyrightAttribute>().Copyright; 
+0

이것은 정상적으로 작동했습니다. 고맙습니다. 웹 응용 프로그램의 일반적인 절차입니까, 아니면 일부 개발자가이 정보를 web.config 파일에 저장합니까? – TroyS

+0

@tszoro 웹 응용 프로그램에 대해서는 공통적 인 생각이 없지만 모든 유형의 응용 프로그램에 대해 일관된 버전을 만들기가 쉽습니다. 올바른 'AssemblyInfo.cs'(또는 내 경우에는 'SolutionInfo.cs'가 각 프로젝트). – Richard

0

방금 ​​web.config에 대해 이야기하고 계십니까?

코드 숨김에서
<configuration> 
    <system.web> 
    <compilation> 
     <assemblies> 
     <add assembly="<AssemblyName>, Version=<Version>, Culture=<Culture>, PublicKeyToken=<PublicKeyToken>"/> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

, 당신은이 작업을 수행 할 수 있습니다. (예를 들어 AssemblyCopyrightAttribute) : 여기

Imports System.Web.Configuration 
... 
WebConfigurationManager.GetSection("sectionyouwant") 

은 MSDN에서 예제 http://msdn.microsoft.com/en-us/library/system.web.configuration.webconfigurationmanager.aspx

+0

그럼 실제로 나는 MyProject를 응용 프로그램 탭에서 어셈블리 정보 대화에 대해 얘기했다 . 여기에는 제목, 설명, 회사, 제품, 저작권, 상표, 어셈블리 버전, 파일 버전, GUID 및 중립적 인 언어가 포함됩니다. 나는 web.config 파일에서 이것을 보지 못했습니다. – TroyS

관련 문제