gpt4 book ai didi

c# - 枚举程序集信息到xml的工具

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:26 25 4
gpt4 key购买 nike

有谁知道是否有工具可以获取给定程序集的所有程序集信息。最好是 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();
}
}

这应该可以帮助您入门。您可以添加错误处理和内容,但这应该可以。

关于c# - 枚举程序集信息到xml的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/674429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com