├── .NET
├── .gitignore
├── Benchmark
│ ├── Benchmark.csproj
│ ├── Extension.cs
│ └── Program.cs
├── OneShot.sln
├── OneShotInjection
│ └── OneShotInjection.csproj
├── Test
│ └── Test.csproj
└── global.json
├── .editorconfig
├── .github
└── workflows
│ ├── dotnet.yml
│ ├── nuget-publish.yml
│ ├── release-upm.yml
│ └── unity-test.yml
├── .gitignore
├── Assets
├── Benchmark.meta
├── Benchmark
│ ├── Benchmark.asmdef
│ ├── Benchmark.asmdef.meta
│ ├── BenchmarkCreateInstance.cs
│ └── BenchmarkCreateInstance.cs.meta
├── FooInstaller.cs
├── FooInstaller.cs.meta
├── Sample.unity
├── Sample.unity.meta
├── Tests.meta
└── Tests
│ ├── Fixture.cs
│ ├── Fixture.cs.meta
│ ├── TestCircularCheck.cs
│ ├── TestCircularCheck.cs.meta
│ ├── TestGeneric.cs
│ ├── TestGeneric.cs.meta
│ ├── TestLabel.cs
│ ├── TestLabel.cs.meta
│ ├── TestLifetime.cs
│ ├── TestLifetime.cs.meta
│ ├── TestMultithread.cs
│ ├── TestMultithread.cs.meta
│ ├── TestOneShot.cs
│ ├── TestOneShot.cs.meta
│ ├── TestWithBuilder.cs
│ ├── TestWithBuilder.cs.meta
│ ├── Tests.asmdef
│ └── Tests.asmdef.meta
├── LICENSE
├── Packages
├── com.quabug.one-shot-injection
│ ├── ContainerComponent.cs
│ ├── ContainerComponent.cs.meta
│ ├── Injector.cs
│ ├── Injector.cs.meta
│ ├── OneShot.asmdef
│ ├── OneShot.asmdef.meta
│ ├── OneShot.cs
│ ├── OneShot.cs.meta
│ ├── StopInjection.cs
│ ├── StopInjection.cs.meta
│ ├── package.json
│ └── package.json.meta
├── manifest.json
└── packages-lock.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── MemorySettings.asset
├── NavMeshAreas.asset
├── PackageManagerSettings.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── SceneTemplateSettings.json
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
├── XRSettings.asset
└── boot.config
└── README.md
/.NET/.gitignore:
--------------------------------------------------------------------------------
1 | *.swp
2 | *.*~
3 | project.lock.json
4 | .DS_Store
5 | *.pyc
6 | nupkg/
7 |
8 | # Visual Studio Code
9 | .vscode
10 |
11 | # Rider
12 | .idea
13 |
14 | # User-specific files
15 | *.suo
16 | *.user
17 | *.userosscache
18 | *.sln.docstates
19 |
20 | # Build results
21 | [Dd]ebug/
22 | [Dd]ebugPublic/
23 | [Rr]elease/
24 | [Rr]eleases/
25 | x64/
26 | x86/
27 | build/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Oo]ut/
32 | msbuild.log
33 | msbuild.err
34 | msbuild.wrn
35 |
36 | # Visual Studio 2015
37 | .vs/
--------------------------------------------------------------------------------
/.NET/Benchmark/Benchmark.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net6.0
6 | enable
7 | enable
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.NET/Benchmark/Extension.cs:
--------------------------------------------------------------------------------
1 | using System.Linq.Expressions;
2 | using System.Reflection;
3 |
4 | namespace Benchmark;
5 |
6 | public static class Extension
7 | {
8 | public static Func