gitextract_7nw5d5uj/ ├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── THIRD-PARTY-NOTICES.txt ├── docs/ │ ├── logo.pdn │ └── logo_transparent_color.pdn ├── global.json ├── samples/ │ ├── BlazorApp/ │ │ ├── App.razor │ │ ├── BlazorApp.csproj │ │ ├── Data/ │ │ │ ├── WeatherForecast.cs │ │ │ └── WeatherForecastService.cs │ │ ├── Pages/ │ │ │ ├── Counter.razor │ │ │ ├── Error.razor │ │ │ ├── FetchData.razor │ │ │ ├── Index.razor │ │ │ └── _Host.cshtml │ │ ├── Program.cs │ │ ├── Shared/ │ │ │ ├── MainLayout.razor │ │ │ ├── NavMenu.razor │ │ │ └── SurveyPrompt.razor │ │ ├── Startup.cs │ │ ├── _Imports.razor │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot/ │ │ └── css/ │ │ ├── open-iconic/ │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font/ │ │ │ └── fonts/ │ │ │ └── open-iconic.otf │ │ └── site.css │ ├── ConsoleApp/ │ │ ├── ConsoleApp.csproj │ │ ├── FirstPlugin.cs │ │ ├── MyPlugin.cs │ │ ├── Program.cs │ │ └── SecondPlugin.cs │ ├── Shared/ │ │ ├── Weikio.PluginFramework.Samples.Shared/ │ │ │ ├── IMyPlugin.cs │ │ │ ├── IOperator.cs │ │ │ ├── IPlugin.cs │ │ │ ├── RemainderOperator.cs │ │ │ └── Weikio.PluginFramework.Samples.Shared.csproj │ │ └── Weikio.PluginFramework.Samples.SharedPlugins/ │ │ ├── MinusOperator.cs │ │ ├── MultiplyOperator.cs │ │ ├── SecondSharedPlugin.cs │ │ ├── SumOperator.cs │ │ └── Weikio.PluginFramework.Samples.SharedPlugins.csproj │ ├── WebApp/ │ │ ├── Controllers/ │ │ │ └── CalculatorController.cs │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WebApp.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── WebAppPluginsLibrary/ │ │ ├── CustomPlugin.cs │ │ └── WebAppPluginsLibrary.csproj │ ├── WebAppWithAppSettings/ │ │ ├── Controllers/ │ │ │ └── CalculatorController.cs │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WebAppWithAppSettings.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── WebAppWithDelegate/ │ │ ├── Controllers/ │ │ │ └── DelegateController.cs │ │ ├── ExternalService.cs │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WebAppWithDelegate.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── WebAppWithNuget/ │ │ ├── Controllers/ │ │ │ └── CalculatorController.cs │ │ ├── NugetLogger.cs │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WebAppWithNuget.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── WebAppWithRoslyn/ │ │ ├── Controllers/ │ │ │ └── RoslynController.cs │ │ ├── ExternalService.cs │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WebAppWithRoslyn.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── WinFormsApp/ │ │ ├── DivideOperator.cs │ │ ├── Form1.Designer.cs │ │ ├── Form1.cs │ │ ├── Form1.resx │ │ ├── Program.cs │ │ └── WinFormsApp.csproj │ ├── WinFormsPluginsLibrary/ │ │ ├── LabelPlugin.Designer.cs │ │ ├── LabelPlugin.cs │ │ ├── LabelPlugin.resx │ │ ├── TestPlugin.Designer.cs │ │ ├── TestPlugin.cs │ │ ├── TestPlugin.resx │ │ └── WinFormsPluginsLibrary.csproj │ └── WpfApp/ │ ├── App.xaml │ ├── App.xaml.cs │ ├── AssemblyInfo.cs │ ├── DivideOperator.cs │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ └── WpfApp.csproj ├── src/ │ ├── PluginFramework.sln │ ├── Weikio.PluginFramework/ │ │ ├── Catalogs/ │ │ │ ├── AssemblyPluginCatalog.cs │ │ │ ├── AssemblyPluginCatalogOptions.cs │ │ │ ├── CompositePluginCatalog.cs │ │ │ ├── Delegates/ │ │ │ │ ├── ConversionRule.cs │ │ │ │ ├── DelegateCatalog.cs │ │ │ │ ├── DelegatePluginCatalogOptions.cs │ │ │ │ └── ParameterConversion.cs │ │ │ ├── EmptyPluginCatalog.cs │ │ │ ├── FolderPluginCatalog.cs │ │ │ ├── FolderPluginCatalogOptions.cs │ │ │ ├── TypePluginCatalog.cs │ │ │ └── TypePluginCatalogOptions.cs │ │ ├── Context/ │ │ │ ├── MetadataTypeFindingContext.cs │ │ │ ├── PluginAssemblyLoadContext.cs │ │ │ ├── PluginLoadContextOptions.cs │ │ │ ├── RuntimeAssemblyHint.cs │ │ │ └── UseHostApplicationAssembliesEnum.cs │ │ ├── TypeFinding/ │ │ │ ├── ITypeFindingContext.cs │ │ │ ├── TypeFinder.cs │ │ │ ├── TypeFinderCriteria.cs │ │ │ ├── TypeFinderCriteriaBuilder.cs │ │ │ └── TypeFinderOptions.cs │ │ └── Weikio.PluginFramework.csproj │ ├── Weikio.PluginFramework.Abstractions/ │ │ ├── IPluginCatalog.cs │ │ ├── IPluginCatalogExtensions.cs │ │ ├── Plugin.cs │ │ ├── PluginFrameworkOptions.cs │ │ ├── PluginNameOptions.cs │ │ └── Weikio.PluginFramework.Abstractions.csproj │ ├── Weikio.PluginFramework.AspNetCore/ │ │ ├── DefaultPluginOption.cs │ │ ├── PluginExtensions.cs │ │ ├── PluginFrameworkInitializer.cs │ │ ├── PluginProvider.cs │ │ ├── ServiceCollectionExtensions.cs │ │ ├── ServiceProviderExtensions.cs │ │ └── Weikio.PluginFramework.AspNetCore.csproj │ ├── Weikio.PluginFramework.Catalogs.NuGet/ │ │ ├── NugetFeedPluginCatalog.cs │ │ ├── NugetFeedPluginCatalogOptions.cs │ │ ├── NugetPackagePluginCatalog.cs │ │ ├── NugetPluginCatalogOptions.cs │ │ └── Weikio.PluginFramework.Catalogs.NuGet.csproj │ ├── Weikio.PluginFramework.Catalogs.Roslyn/ │ │ ├── InvalidCodeException.cs │ │ ├── RegularInitializer.cs │ │ ├── RoslynPluginCatalog.cs │ │ ├── RoslynPluginCatalogOptions.cs │ │ ├── ScriptInitializer.cs │ │ └── Weikio.PluginFramework.Catalogs.Roslyn.csproj │ └── Weikio.PluginFramework.Configuration/ │ ├── CatalogConfiguration.cs │ ├── Converters/ │ │ ├── AssemblyCatalogConfigurationCoverter.cs │ │ ├── FolderCatalogConfigurationConverter.cs │ │ └── IConfigurationToCatalogConverter.cs │ ├── Providers/ │ │ ├── IPluginCatalogConfigurationLoader.cs │ │ └── PluginCatalogConfigurationLoader.cs │ └── Weikio.PluginFramework.Configuration.csproj └── tests/ ├── Assemblies/ │ ├── JsonNetNew/ │ │ ├── JsonNetNew.csproj │ │ └── NewJsonResolver.cs │ ├── JsonNetOld/ │ │ ├── JsonNetOld.csproj │ │ └── OldJsonResolver.cs │ ├── TestAssembly1/ │ │ ├── FirstPlugin.cs │ │ ├── INotPluginInterface.cs │ │ ├── NotAPlugin.cs │ │ └── TestAssembly1.csproj │ ├── TestAssembly2/ │ │ ├── SecondPlugin.cs │ │ └── TestAssembly2.csproj │ ├── TestAssembly3/ │ │ ├── TestAssembly3.csproj │ │ └── ThirdAddon.cs │ └── TestIntefaces/ │ ├── ICommand.cs │ ├── IJsonVersionResolver.cs │ └── TestIntefaces.csproj ├── integration/ │ ├── WebSites/ │ │ └── PluginFrameworkTestBed/ │ │ ├── Controllers/ │ │ │ └── WeatherForecastController.cs │ │ ├── PluginFrameworkTestBed.csproj │ │ ├── Program.cs │ │ ├── Startup.cs │ │ ├── WeatherForecast.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Weikio.PluginFramework.AspNetCore.IntegrationTests/ │ │ ├── DefaultPluginTypeTests.cs │ │ ├── TestBase.cs │ │ ├── Weikio.PluginFramework.AspNetCore.IntegrationTests.csproj │ │ └── xunit.runner.json │ └── Weikio.PluginFramework.Catalogs.NuGet.Tests/ │ ├── NotThreadSafeResourceCollection.cs │ ├── NuGet.Config │ ├── NugetFeedPluginCatalogTests.cs │ ├── NugetPackagePluginCatalogTests.cs │ └── Weikio.PluginFramework.Catalogs.NuGet.Tests.csproj └── unit/ ├── Weikio.PluginFramework.Catalogs.Roslyn.Tests/ │ ├── RegularInitializerTests.cs │ ├── RoslynPluginCatalogTests.cs │ ├── ScriptInitializerTests.cs │ ├── TestHelpers.cs │ └── Weikio.PluginFramework.Catalogs.Roslyn.Tests.csproj └── Weikio.PluginFramework.Tests/ ├── AssemblyPluginCatalogTests.cs ├── DefaultOptionsTests.cs ├── DelegateCatalogTests.cs ├── FolderCatalogTests.cs ├── NotThreadSafeResourceCollection.cs ├── Plugins/ │ ├── AbstractPluginWithAttribute.cs │ ├── AnotherPluginWithAttribute.cs │ ├── MyPluginAttribute.cs │ ├── PluginWithAttribute.cs │ ├── TypePlugin.cs │ └── TypePluginWithName.cs ├── TagTests.cs ├── TypeFinderTests.cs ├── TypePluginCatalogTests.cs └── Weikio.PluginFramework.Tests.csproj