diff --git a/src/AltGen.Console.Tests/AltGen.Console.Tests.csproj b/src/AltGen.Console.Tests/AltGen.Console.Tests.csproj
new file mode 100644
index 0000000..ffec1a6
--- /dev/null
+++ b/src/AltGen.Console.Tests/AltGen.Console.Tests.csproj
@@ -0,0 +1,25 @@
+
+
+
+ net9.0
+ enable
+ enable
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/AltGen.Console.Tests/UnitTest1.cs b/src/AltGen.Console.Tests/UnitTest1.cs
new file mode 100644
index 0000000..39b4247
--- /dev/null
+++ b/src/AltGen.Console.Tests/UnitTest1.cs
@@ -0,0 +1,10 @@
+namespace AltGen.Console.Tests;
+
+public class UnitTest1
+{
+ [Fact]
+ public void Test1()
+ {
+
+ }
+}
diff --git a/src/AltGen.Console/AltGen.Console.csproj b/src/AltGen.Console/AltGen.Console.csproj
new file mode 100644
index 0000000..b8472d7
--- /dev/null
+++ b/src/AltGen.Console/AltGen.Console.csproj
@@ -0,0 +1,16 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
diff --git a/src/AltGen.Console/Common/TypeRegistrar.cs b/src/AltGen.Console/Common/TypeRegistrar.cs
new file mode 100644
index 0000000..010dbd7
--- /dev/null
+++ b/src/AltGen.Console/Common/TypeRegistrar.cs
@@ -0,0 +1,28 @@
+namespace AltGen.Console.Common;
+
+sealed class TypeRegistrar(IHostBuilder builder) : ITypeRegistrar
+{
+ readonly IHostBuilder _builder = builder;
+
+ public ITypeResolver Build()
+ {
+ return new TypeResolver(_builder.Build());
+ }
+
+ public void Register(Type service, Type implementation)
+ {
+ _builder.ConfigureServices((_, services) => services.AddSingleton(service, implementation));
+ }
+
+ public void RegisterInstance(Type service, object implementation)
+ {
+ _builder.ConfigureServices((_, services) => services.AddSingleton(service, implementation));
+ }
+
+ public void RegisterLazy(Type service, Func