{"id":23062206,"url":"https://github.com/dotnet9/codewf.aspnetcore.core","last_synced_at":"2025-04-03T07:26:32.859Z","repository":{"id":244897100,"uuid":"816560389","full_name":"dotnet9/CodeWF.AspNetCore.Core","owner":"dotnet9","description":"一个简易的ASP.NET Core核心库，支持模块化开发","archived":false,"fork":false,"pushed_at":"2024-06-18T06:07:10.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T21:15:59.374Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotnet9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-18T01:55:33.000Z","updated_at":"2024-06-22T15:45:34.000Z","dependencies_parsed_at":"2024-06-18T06:07:34.127Z","dependency_job_id":null,"html_url":"https://github.com/dotnet9/CodeWF.AspNetCore.Core","commit_stats":null,"previous_names":["dotnet9/codewf.aspnetcore.core"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet9%2FCodeWF.AspNetCore.Core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet9%2FCodeWF.AspNetCore.Core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet9%2FCodeWF.AspNetCore.Core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet9%2FCodeWF.AspNetCore.Core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnet9","download_url":"https://codeload.github.com/dotnet9/CodeWF.AspNetCore.Core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246955037,"owners_count":20860200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-16T03:25:04.427Z","updated_at":"2025-04-03T07:26:32.837Z","avatar_url":"https://github.com/dotnet9.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodeWF.AspNetCore.Core\n\n一个简易的ASP.NET Core核心库，支持模块化开发。\n\n安装NuGet包：\n\n```shell\nNuGet\\Install-Package CodeWF.AspNetCore.Core -Version 1.0.0\n```\n\n创建模块类库，添加模块入口类：\n\n```csharp\npublic class SampleModule : IModule\n{\n    public void ConfigureServices(IServiceCollection services)\n    {\n    }\n\n    public void Configure(IApplicationBuilder app)\n    {\n    }\n}\n```\n\n注入模块：\n\n```csharp\nusing CodeWF.AspNetCore.Core;\nusing WebAPISample.Helpers;\n\nvar builder = WebApplication.CreateBuilder(args);\nbuilder.Services.AddControllers();\n\nvar moduleAssemblies = FileHelper.GetModuleAssemblies();\nbuilder.Services.AddModules(moduleAssemblies);\n\nvar app = builder.Build();\n\napp.UseAuthorization();\napp.MapControllers();\n\napp.UseModules();\n\napp.Run();\n```\n\n读取模块工程程序集\n\n```csharp\nusing CodeWF.AspNetCore.Core;\nusing System.Reflection;\n\nnamespace WebAPISample.Helpers\n{\n    public static class FileHelper\n    {\n        public static Assembly[] GetModuleAssemblies()\n        {\n            return Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory), \"*.dll\")\n                .Select(Assembly.LoadFrom).Where(\n                    assembly =\u003e\n                        assembly.GetTypes().Any(type =\u003e !type.IsAbstract\n                                                        \u0026\u0026 typeof(IModule).IsAssignableFrom(type))).ToArray();\n        }\n    }\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet9%2Fcodewf.aspnetcore.core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnet9%2Fcodewf.aspnetcore.core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet9%2Fcodewf.aspnetcore.core/lists"}