gpt4 book ai didi

C# API 生成器

转载 作者:太空狗 更新时间:2023-10-29 23:03:55 26 4
gpt4 key购买 nike

我有几个 dll 文件,我想导出所有公共(public)类,方法由命名空间分隔(导出到 html/文本文件或我可以在 Windows 中按 ctrl+c/v 的任何其他文件:))。

我不想创建文档或将我的 dll 与 xml 文件合并。我只需要所有公共(public)方法和属性的列表。

实现该目标的最佳方法是什么?

任何答案的TIA

最佳答案

边缘非常粗糙,但试试这个尺寸:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace GetMethodsFromPublicTypes
{
class Program
{
static void Main(string[] args)
{
var assemblyName = @"FullPathAndFilenameOfAssembly";

var assembly = Assembly.ReflectionOnlyLoadFrom(assemblyName);

AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);

var methodsForType = from type in assembly.GetTypes()
where type.IsPublic
select new
{
Type = type,
Methods = type.GetMethods().Where(m => m.IsPublic)
};

foreach (var type in methodsForType)
{
Console.WriteLine(type.Type.FullName);
foreach (var method in type.Methods)
{
Console.WriteLine(" ==> {0}", method.Name);
}
}
}

static Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
var a = Assembly.ReflectionOnlyLoad(args.Name);
return a;
}
}
}

注意:这需要改进以排除属性 getter/setter 和继承的方法,但这是一个不错的起点

关于C# API 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592199/

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