어셈블리에 제공된 모든 어셈블리 정보를 가져올 수있는 도구가 있는지 아는 사람 있습니까? XML 형식이어야합니다.xml에 어셈블리 정보를 열거하기위한 도구
정보가 필요합니다 :
- 전체 네임 스페이스 어셈블리 이름
- 제목
- 문화
- 구성
- 버전
- 정보 제공 버전
- 설명
- 회사
- 제품 당신은 아마 .NET Reflector을 사용할 수
- 저작권
- 상표
어셈블리에 제공된 모든 어셈블리 정보를 가져올 수있는 도구가 있는지 아는 사람 있습니까? XML 형식이어야합니다.xml에 어셈블리 정보를 열거하기위한 도구
정보가 필요합니다 :
public static class AssemblyExtensions
{
public static string InfoToXML(this Assembly assembly)
{
string name = assembly.FullName;
string title = String.Empty;
string description = String.Empty;
string company = String.Empty;
string culture = String.Empty;
string configuration = String.Empty;
string version = String.Empty;
string informationalVersion = String.Empty;
string product = String.Empty;
string trademark = String.Empty;
string copyright = String.Empty;
foreach (var attrib in assembly.GetCustomAttributes(false))
{
if (attrib is AssemblyTitleAttribute)
{
title = ((AssemblyTitleAttribute)attrib).Title;
}
if (attrib is AssemblyDescriptionAttribute)
{
description = ((AssemblyDescriptionAttribute)attrib).Description;
}
if (attrib is AssemblyCompanyAttribute)
{
company = ((AssemblyCompanyAttribute)attrib).Company;
}
if (attrib is AssemblyCultureAttribute)
{
culture = ((AssemblyCultureAttribute)attrib).Culture;
}
if (attrib is AssemblyConfigurationAttribute)
{
configuration = ((AssemblyConfigurationAttribute)attrib).Configuration;
}
if (attrib is AssemblyVersionAttribute)
{
version = ((AssemblyVersionAttribute)attrib).Version;
}
if (attrib is AssemblyInformationalVersionAttribute)
{
informationalVersion = ((AssemblyInformationalVersionAttribute)attrib).InformationalVersion;
}
if (attrib is AssemblyProductAttribute)
{
product = ((AssemblyProductAttribute)attrib).Product;
}
if (attrib is AssemblyTrademarkAttribute)
{
trademark = ((AssemblyTrademarkAttribute)attrib).Trademark;
}
if (attrib is AssemblyCopyrightAttribute)
{
copyright = ((AssemblyCopyrightAttribute)attrib).Copyright;
}
}
StringBuilder builder = new StringBuilder();
StringWriter stringWriter = new StringWriter(builder);
XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("AssemblyInformation");
xmlWriter.WriteElementString("AssemblyName", name);
xmlWriter.WriteElementString("Title", title);
xmlWriter.WriteElementString("Description", description);
xmlWriter.WriteElementString("Company", company);
xmlWriter.WriteElementString("Culture", culture);
xmlWriter.WriteElementString("Configuration", configuration);
xmlWriter.WriteElementString("Version", version);
xmlWriter.WriteElementString("InformationalVersion", informationalVersion);
xmlWriter.WriteElementString("Product", product);
xmlWriter.WriteElementString("Trademark", trademark);
xmlWriter.WriteElementString("Copyright", copyright);
xmlWriter.WriteEndElement();
return builder.ToString();
}
}
시작해야합니다. 오류 처리 및 물건을 추가 할 수 있지만이 작동합니다.
. XML 내보내기가 있다는 것을 모릅니다. 왜 XML을 추가 할 수 없는지, 또는 직접 도구를 작성할 수없는 이유는 모르겠습니다. 속성을 반복하고 이러한 종류의 정보를 추출하는 것은 매우 쉽습니다.
노력에 감사드립니다. 정말 도움이되었습니다! –