Archived
Private
Public Access
1
0

Finished DependencyInjector

This commit is contained in:
2023-05-22 17:24:56 +02:00
commit 8c0d15398e
69 changed files with 788 additions and 0 deletions

13
.idea/.idea.DependencyInjector/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.DependencyInjector.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
namespace DependencyInjector.Test;
[Dependency(Type = DependencyType.Singleton)]
public class Config {
public string Message { get; set; } = Dependency.Inject<IMessageCreator>().CreateMessage("Hello World!");
}

View File

@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DependencyInjector\DependencyInjector.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,5 @@
namespace DependencyInjector.Test;
public interface IMessageCreator {
public string CreateMessage(string message);
}

View File

@@ -0,0 +1,11 @@
namespace DependencyInjector.Test;
public class MessageCreator : IMessageCreator {
public string CreateMessage(string message) => message;
public MessageCreator() {
Console.WriteLine(1);
}
}

View File

@@ -0,0 +1,11 @@
// See https://aka.ms/new-console-template for more information
using DependencyInjector;
using DependencyInjector.Test;
Dependency.Provide<IMessageCreator, MessageCreator>();
var config = Dependency.Inject<Config>();
var creator = Dependency.Inject<IMessageCreator>();
Console.WriteLine(config.Message);
Console.WriteLine(creator.CreateMessage("Test"));

View File

@@ -0,0 +1,36 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v7.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v7.0": {
"DependencyInjector.Test/1.0.0": {
"dependencies": {
"DependencyInjector": "1.0.0"
},
"runtime": {
"DependencyInjector.Test.dll": {}
}
},
"DependencyInjector/1.0.0": {
"runtime": {
"DependencyInjector.dll": {}
}
}
}
},
"libraries": {
"DependencyInjector.Test/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"DependencyInjector/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "net7.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "7.0.0"
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("DependencyInjector.Test")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("DependencyInjector.Test")]
[assembly: System.Reflection.AssemblyTitleAttribute("DependencyInjector.Test")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View File

@@ -0,0 +1 @@
9e7536b734331a1c5a9d4ba12cfcecc8656cf6b3

View File

@@ -0,0 +1,11 @@
is_global = true
build_property.TargetFramework = net7.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = DependencyInjector.Test
build_property.ProjectDir = D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
735a44281e7b7d6ccf05f017a8cd863c4a96b821

View File

@@ -0,0 +1,18 @@
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.Test.exe
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.Test.deps.json
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.Test.runtimeconfig.json
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.Test.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.Test.pdb
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\bin\Debug\net7.0\DependencyInjector.pdb
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.csproj.AssemblyReference.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.GeneratedMSBuildEditorConfig.editorconfig
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.AssemblyInfoInputs.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.AssemblyInfo.cs
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.csproj.CoreCompileInputs.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.csproj.CopyComplete
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\refint\DependencyInjector.Test.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.pdb
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\DependencyInjector.Test.genruntimeconfig.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector.Test\obj\Debug\net7.0\ref\DependencyInjector.Test.dll

View File

@@ -0,0 +1 @@
389892aac11c74f04978d55185713c074a56c160

Binary file not shown.

View File

@@ -0,0 +1,122 @@
{
"format": 1,
"restore": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj": {}
},
"projects": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj",
"projectName": "DependencyInjector.Test",
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj",
"packagesPath": "C:\\Users\\leon\\.nuget\\packages\\",
"outputPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\leon\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj": {
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"projectName": "DependencyInjector",
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"packagesPath": "C:\\Users\\leon\\.nuget\\packages\\",
"outputPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\leon\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\leon\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.4.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\leon\.nuget\packages\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -0,0 +1,91 @@
{
"version": 3,
"targets": {
"net7.0": {
"DependencyInjector/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v7.0",
"compile": {
"bin/placeholder/DependencyInjector.dll": {}
},
"runtime": {
"bin/placeholder/DependencyInjector.dll": {}
}
}
}
},
"libraries": {
"DependencyInjector/1.0.0": {
"type": "project",
"path": "../DependencyInjector/DependencyInjector.csproj",
"msbuildProject": "../DependencyInjector/DependencyInjector.csproj"
}
},
"projectFileDependencyGroups": {
"net7.0": [
"DependencyInjector >= 1.0.0"
]
},
"packageFolders": {
"C:\\Users\\leon\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj",
"projectName": "DependencyInjector.Test",
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj",
"packagesPath": "C:\\Users\\leon\\.nuget\\packages\\",
"outputPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\leon\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj": {
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "q/1ZU+0izLraOoAvbu+VJPuWBb0H9hPumfa4ExatbuKFc230h4Awrws9Qcj5LH4vWVRhu/VwhfXb+Io2Z/sNeg==",
"success": true,
"projectFilePath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj",
"expectedPackageFiles": [],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj","projectName":"DependencyInjector.Test","projectPath":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\DependencyInjector.Test.csproj","outputPath":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector.Test\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj":{"projectPath":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
16846935440339462

22
DependencyInjector.sln Normal file
View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DependencyInjector", "DependencyInjector\DependencyInjector.csproj", "{C63EC797-C495-437E-B561-905CE800A54A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DependencyInjector.Test", "DependencyInjector.Test\DependencyInjector.Test.csproj", "{6C166061-9EDB-4D16-BBA4-C2BF747363F8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C63EC797-C495-437E-B561-905CE800A54A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C63EC797-C495-437E-B561-905CE800A54A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C63EC797-C495-437E-B561-905CE800A54A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C63EC797-C495-437E-B561-905CE800A54A}.Release|Any CPU.Build.0 = Release|Any CPU
{6C166061-9EDB-4D16-BBA4-C2BF747363F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6C166061-9EDB-4D16-BBA4-C2BF747363F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6C166061-9EDB-4D16-BBA4-C2BF747363F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6C166061-9EDB-4D16-BBA4-C2BF747363F8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,13 @@
using DependencyInjector.Providers;
namespace DependencyInjector;
public static class Dependency {
private static IDependencyProvider _provider = new DefaultProvider();
public static T Inject<T>(params object[] args) => _provider.Inject<T>(args);
public static void Provide<T>(params object[] args) => _provider.Provide<T>(args);
public static void Provide<TAccessor, TImplementor>(params object[] args) where TImplementor : TAccessor => _provider.Provide<TAccessor, TImplementor>(args);
public static void UseProvider<T>(params object[] args) where T : IDependencyProvider => _provider = (IDependencyProvider)Activator.CreateInstance(typeof(T), args)!;
}

View File

@@ -0,0 +1,13 @@
namespace DependencyInjector;
[AttributeUsage(validOn: AttributeTargets.Class)]
public sealed class DependencyAttribute : Attribute {
public DependencyType Type { get; set; } = DependencyType.Singleton;
}
public enum DependencyType : byte {
Singleton = 0x00,
Scoped = 0x01
}

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,9 @@
namespace DependencyInjector;
public interface IDependencyProvider {
protected IDictionary<Type, object> Dependencies { get; }
public T Inject<T>(params object[] args);
public T Provide<T>(params object[] args);
public TAccessor Provide<TAccessor, TImplementor>(params object[] args) where TImplementor : TAccessor;
}

View File

@@ -0,0 +1,44 @@
using System.Reflection;
namespace DependencyInjector.Providers;
internal class DefaultProvider : IDependencyProvider {
public IDictionary<Type, object> Dependencies { get; } = new Dictionary<Type, object>();
public T Inject<T>(params object[] args) {
var type = typeof(T);
if (Dependencies.ContainsKey(type))
return (T)Dependencies[type];
return Provide<T>(args);
}
public T Provide<T>(params object[] args) {
return Provide<T, T>(args);
}
public TAccessor Provide<TAccessor, TImplementor>(params object[] args) where TImplementor : TAccessor {
var type = typeof(TAccessor);
if (Dependencies.ContainsKey(type)) {
throw new ArgumentException("Dependency already registered");
}
var instance = Activator.CreateInstance(typeof(TImplementor), args)!;
var dependencyType = DependencyType.Singleton;
if (type.GetCustomAttributes().SingleOrDefault(attr => attr is DependencyAttribute) is DependencyAttribute attribute)
dependencyType = attribute.Type;
switch (dependencyType) {
case DependencyType.Scoped:
break;
case DependencyType.Singleton:
default:
Dependencies.Add(type, instance);
break;
}
return (TAccessor)instance;
}
}

View File

@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v7.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v7.0": {
"DependencyInjector/1.0.0": {
"runtime": {
"DependencyInjector.dll": {}
}
}
}
},
"libraries": {
"DependencyInjector/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("DependencyInjector")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("DependencyInjector")]
[assembly: System.Reflection.AssemblyTitleAttribute("DependencyInjector")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View File

@@ -0,0 +1 @@
0cb73fe4c2934ff721581ba7976d38aab432c687

View File

@@ -0,0 +1,11 @@
is_global = true
build_property.TargetFramework = net7.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = DependencyInjector
build_property.ProjectDir = D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
9262ed829083078fca87b50ffae18ed46195f3f6

View File

@@ -0,0 +1,12 @@
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\bin\Debug\net7.0\DependencyInjector.deps.json
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\bin\Debug\net7.0\DependencyInjector.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\bin\Debug\net7.0\DependencyInjector.pdb
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.csproj.AssemblyReference.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.GeneratedMSBuildEditorConfig.editorconfig
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.AssemblyInfoInputs.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.AssemblyInfo.cs
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.csproj.CoreCompileInputs.cache
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\refint\DependencyInjector.dll
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\DependencyInjector.pdb
D:\Programmierstuff\C#\DependencyInjector\DependencyInjector\obj\Debug\net7.0\ref\DependencyInjector.dll

View File

@@ -0,0 +1,63 @@
{
"format": 1,
"restore": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj": {}
},
"projects": {
"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"projectName": "DependencyInjector",
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"packagesPath": "C:\\Users\\leon\\.nuget\\packages\\",
"outputPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\leon\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\leon\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.4.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\leon\.nuget\packages\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -0,0 +1,68 @@
{
"version": 3,
"targets": {
"net7.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net7.0": []
},
"packageFolders": {
"C:\\Users\\leon\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"projectName": "DependencyInjector",
"projectPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"packagesPath": "C:\\Users\\leon\\.nuget\\packages\\",
"outputPath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\leon\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "HP3eskJr8QpaFlQAMoGNI9wtStoxRNgylnvAfzqK7vPxG+Dcw7rji6bV/Ddc/gpv8fRGu8QP6FGz/ByR0t4hZw==",
"success": true,
"projectFilePath": "D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj",
"expectedPackageFiles": [],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj","projectName":"DependencyInjector","projectPath":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\DependencyInjector.csproj","outputPath":"D:\\Programmierstuff\\C#\\DependencyInjector\\DependencyInjector\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
16846914047365657