Files
2026-07-17 22:19:09 +08:00

23 lines
1.3 KiB
C#

using System;
using System.Linq;
using System.Reflection;
using System.Text.Json;
using VedAstro.Library;
var assembly = typeof(GeoLocation).Assembly;
var methods = assembly.GetTypes()
.SelectMany(type => type.GetMethods(BindingFlags.Public | BindingFlags.Static))
.Select(method => method.Name).Distinct().OrderBy(name => name).ToArray();
var methodContracts = assembly.GetTypes()
.SelectMany(type => type.GetMethods(BindingFlags.Public | BindingFlags.Static))
.Where(method => method.Name.Contains("Longitude") || method.Name.Contains("Shadbala") || method.Name.Contains("Rasi"))
.Select(method => new { declaring_type = method.DeclaringType?.FullName, name = method.Name, returns = method.ReturnType.FullName, parameters = method.GetParameters().Select(parameter => new { parameter.Name, type = parameter.ParameterType.FullName }).ToArray() })
.OrderBy(method => method.name).ToArray();
Console.WriteLine(JsonSerializer.Serialize(new {
package = "VedAstro.Library",
version = assembly.GetName().Version?.ToString(),
informational_version = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion,
methods = methods.Where(name => name.Contains("Longitude") || name.Contains("Shadbala") || name.Contains("Ashtakavarga") || name.Contains("Rasi")).ToArray(),
method_contracts = methodContracts
}));