diff --git a/ConfigurationTests/ConfigurationTests.csproj b/ConfigurationTests/ConfigurationTests.csproj
index ebe4228..c638033 100644
--- a/ConfigurationTests/ConfigurationTests.csproj
+++ b/ConfigurationTests/ConfigurationTests.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.1
+ netcoreapp2.2
diff --git a/ConfigurationTests/Program.cs b/ConfigurationTests/Program.cs
index 2143611..233b626 100644
--- a/ConfigurationTests/Program.cs
+++ b/ConfigurationTests/Program.cs
@@ -28,7 +28,7 @@ namespace ConfigurationTests
Console.WriteLine($"\tAppName: {config.Service.AppName}");
Console.WriteLine($"\tServiceGroup: {config.Service.ServiceGroup}");
Console.WriteLine($"\tServiceType: {config.Service.ServiceType}");
-
+
Console.ReadKey();
}
}
diff --git a/DependencyInjectionTests/DependencyInjectionTests.csproj b/DependencyInjectionTests/DependencyInjectionTests.csproj
new file mode 100644
index 0000000..18ef193
--- /dev/null
+++ b/DependencyInjectionTests/DependencyInjectionTests.csproj
@@ -0,0 +1,18 @@
+
+
+
+ Exe
+ netcoreapp3.0
+
+
+
+
+
+
+
+
+ Always
+
+
+
+
diff --git a/DependencyInjectionTests/Program.cs b/DependencyInjectionTests/Program.cs
new file mode 100644
index 0000000..8b741ab
--- /dev/null
+++ b/DependencyInjectionTests/Program.cs
@@ -0,0 +1,59 @@
+using System;
+using ZeroLevel;
+using ZeroLevel.Patterns.DependencyInjection;
+using ZeroLevel.Services.Reflection;
+
+namespace DependencyInjectionTests
+{
+ public interface IDependencyContract
+ {
+ bool Invoke();
+ }
+
+ public class DependencyImplementation
+ : IDependencyContract
+ {
+ public bool Invoke() => true;
+ }
+
+ public interface IMyContract
+ {
+ string Run();
+ }
+
+ public class MyImplementation
+ : IMyContract
+ {
+ [Resolve]
+ private IDependencyContract _dependency;
+ [Parameter("delimeter")]
+ private string _delimeter;
+ [Resolve]
+ private IConfiguration _config;
+
+ public string Run() => $"{_config.First("var")}{_delimeter}{_dependency.Invoke()}";
+ }
+
+
+ class Program
+ {
+ static void Main(string[] args)
+ {
+
+
+ var config = Configuration.Create();
+ config.Append("var", "bool isWorking");
+ Injector.Default.Register();
+ Injector.Default.Register();
+ Injector.Default.Register(config);
+ Injector.Default.Save("delimeter", " = ");
+
+ var instance = new MyImplementation();
+ Injector.Default.Compose(instance);
+ Console.WriteLine(instance.Run());
+ Console.ReadKey();
+
+ Injector.Dispose();
+ }
+ }
+}
diff --git a/DependencyInjectionTests/config.ini b/DependencyInjectionTests/config.ini
new file mode 100644
index 0000000..0cbcf83
--- /dev/null
+++ b/DependencyInjectionTests/config.ini
@@ -0,0 +1 @@
+url=github.com
\ No newline at end of file
diff --git a/TestApp/Program.cs b/TestApp/Program.cs
index 54bab42..171e65e 100644
--- a/TestApp/Program.cs
+++ b/TestApp/Program.cs
@@ -1,9 +1,6 @@
using Newtonsoft.Json;
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
+using ZeroLevel;
using ZeroLevel.Services.Web;
namespace TestApp
diff --git a/TestPipeLine/Consumer/Program.cs b/TestPipeLine/Consumer/Program.cs
index c44e298..937ae33 100644
--- a/TestPipeLine/Consumer/Program.cs
+++ b/TestPipeLine/Consumer/Program.cs
@@ -1,4 +1,5 @@
using ZeroLevel;
+using ZeroLevel.Logging;
namespace Consumer
{
@@ -7,7 +8,7 @@ namespace Consumer
static void Main(string[] args)
{
Bootstrap.Startup(args)
- .EnableConsoleLog(ZeroLevel.Services.Logging.LogLevel.FullStandart)
+ .EnableConsoleLog(LogLevel.FullStandart)
.UseDiscovery()
.Run()
.WaitWhileStatus(ZeroServiceStatus.Running)
diff --git a/TestPipeLine/Processor/Program.cs b/TestPipeLine/Processor/Program.cs
index 62556ed..100d790 100644
--- a/TestPipeLine/Processor/Program.cs
+++ b/TestPipeLine/Processor/Program.cs
@@ -1,4 +1,5 @@
using ZeroLevel;
+using ZeroLevel.Logging;
namespace Processor
{
@@ -7,7 +8,7 @@ namespace Processor
static void Main(string[] args)
{
Bootstrap.Startup(args)
- .EnableConsoleLog(ZeroLevel.Services.Logging.LogLevel.FullStandart)
+ .EnableConsoleLog(LogLevel.FullStandart)
.UseDiscovery()
.Run()
.WaitWhileStatus(ZeroServiceStatus.Running)
diff --git a/TestPipeLine/Source/Program.cs b/TestPipeLine/Source/Program.cs
index cb7a349..4ce61f2 100644
--- a/TestPipeLine/Source/Program.cs
+++ b/TestPipeLine/Source/Program.cs
@@ -7,7 +7,7 @@ namespace Source
static void Main(string[] args)
{
Bootstrap.Startup(args)
- .EnableConsoleLog(ZeroLevel.Services.Logging.LogLevel.FullStandart)
+ .EnableConsoleLog(ZeroLevel.Logging.LogLevel.FullStandart)
.UseDiscovery()
.Run()
.WaitWhileStatus(ZeroServiceStatus.Running)
diff --git a/ZeroLevel.sln b/ZeroLevel.sln
index aa575be..a074370 100644
--- a/ZeroLevel.sln
+++ b/ZeroLevel.sln
@@ -31,7 +31,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZeroLevel.SQL", "ZeroLevel.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZeroNetworkMonitor", "ZeroNetworkMonitor\ZeroNetworkMonitor.csproj", "{EECF6EA0-6D9C-4B69-9CA3-23357C04B84C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigurationTests", "ConfigurationTests\ConfigurationTests.csproj", "{E37785CE-E75A-49FB-B17F-16A0F2C6D656}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConfigurationTests", "ConfigurationTests\ConfigurationTests.csproj", "{E37785CE-E75A-49FB-B17F-16A0F2C6D656}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DependencyInjectionTests", "DependencyInjectionTests\DependencyInjectionTests.csproj", "{665B38E3-A5F2-4AD0-946B-209D80C1AA40}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -199,6 +201,18 @@ Global
{E37785CE-E75A-49FB-B17F-16A0F2C6D656}.Release|x64.Build.0 = Release|Any CPU
{E37785CE-E75A-49FB-B17F-16A0F2C6D656}.Release|x86.ActiveCfg = Release|Any CPU
{E37785CE-E75A-49FB-B17F-16A0F2C6D656}.Release|x86.Build.0 = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|x64.Build.0 = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Debug|x86.Build.0 = Debug|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|Any CPU.Build.0 = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|x64.ActiveCfg = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|x64.Build.0 = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|x86.ActiveCfg = Release|Any CPU
+ {665B38E3-A5F2-4AD0-946B-209D80C1AA40}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ZeroLevel/Services/Bootstrap.cs b/ZeroLevel/Services/Bootstrap.cs
index 771788c..a920d61 100644
--- a/ZeroLevel/Services/Bootstrap.cs
+++ b/ZeroLevel/Services/Bootstrap.cs
@@ -1,11 +1,9 @@
using System;
using System.IO;
-using System.Linq;
using System.Net;
using System.Reflection;
+using ZeroLevel.Logging;
using ZeroLevel.Network;
-using ZeroLevel.Services;
-using ZeroLevel.Services.Logging;
namespace ZeroLevel
{
diff --git a/ZeroLevel/Services/DependencyInjection/Container.cs b/ZeroLevel/Services/DependencyInjection/Container.cs
index fa9ff51..38b1777 100644
--- a/ZeroLevel/Services/DependencyInjection/Container.cs
+++ b/ZeroLevel/Services/DependencyInjection/Container.cs
@@ -7,7 +7,7 @@ using System.Threading;
using ZeroLevel.Services.Collections;
namespace ZeroLevel.Patterns.DependencyInjection
-{
+{
internal sealed class Container :
IContainer
{
@@ -1287,9 +1287,7 @@ namespace ZeroLevel.Patterns.DependencyInjection
public object Get(Type type, string key)
{
- MethodInfo method = typeof(IEverythingStorage).GetMethod("Get");
- MethodInfo genericMethod = method.MakeGenericMethod(type);
- return genericMethod.Invoke(_everything.Value, new object[] { key });
+ return _everything.Value.Get(type, key);
}
public void SaveOrUpdate(string key, T value)
diff --git a/ZeroLevel/Services/Logging/FixSizeLogMessageBuffer.cs b/ZeroLevel/Services/Logging/FixSizeLogMessageBuffer.cs
index b14d3eb..ec5afdd 100644
--- a/ZeroLevel/Services/Logging/FixSizeLogMessageBuffer.cs
+++ b/ZeroLevel/Services/Logging/FixSizeLogMessageBuffer.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading;
+using ZeroLevel.Logging;
using ZeroLevel.Services.Collections;
namespace ZeroLevel.Services.Logging
diff --git a/ZeroLevel/Services/Logging/ILogComposer.cs b/ZeroLevel/Services/Logging/ILogComposer.cs
index bc2fe1d..9eb68dc 100644
--- a/ZeroLevel/Services/Logging/ILogComposer.cs
+++ b/ZeroLevel/Services/Logging/ILogComposer.cs
@@ -1,4 +1,6 @@
-namespace ZeroLevel.Services.Logging
+using ZeroLevel.Logging;
+
+namespace ZeroLevel.Logging
{
public interface ILogComposer
{
diff --git a/ZeroLevel/Services/Logging/ILogMessageBuffer.cs b/ZeroLevel/Services/Logging/ILogMessageBuffer.cs
index e2ff0d0..94084b5 100644
--- a/ZeroLevel/Services/Logging/ILogMessageBuffer.cs
+++ b/ZeroLevel/Services/Logging/ILogMessageBuffer.cs
@@ -1,6 +1,7 @@
using System;
+using ZeroLevel.Logging;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
///
/// Message queue for logging
diff --git a/ZeroLevel/Services/Logging/ILogger.cs b/ZeroLevel/Services/Logging/ILogger.cs
index 3205647..15c8e45 100644
--- a/ZeroLevel/Services/Logging/ILogger.cs
+++ b/ZeroLevel/Services/Logging/ILogger.cs
@@ -1,6 +1,6 @@
using System;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
public interface ILogger : IDisposable
{
diff --git a/ZeroLevel/Services/Logging/Implementation/ConsoleLogger.cs b/ZeroLevel/Services/Logging/Implementation/ConsoleLogger.cs
index cadb5ff..4326aba 100644
--- a/ZeroLevel/Services/Logging/Implementation/ConsoleLogger.cs
+++ b/ZeroLevel/Services/Logging/Implementation/ConsoleLogger.cs
@@ -1,6 +1,7 @@
using System;
+using ZeroLevel.Services.Logging;
-namespace ZeroLevel.Services.Logging.Implementation
+namespace ZeroLevel.Logging
{
public sealed class ConsoleLogger
: ILogger
diff --git a/ZeroLevel/Services/Logging/Implementation/DelegateLogger.cs b/ZeroLevel/Services/Logging/Implementation/DelegateLogger.cs
index 999858d..50fc09a 100644
--- a/ZeroLevel/Services/Logging/Implementation/DelegateLogger.cs
+++ b/ZeroLevel/Services/Logging/Implementation/DelegateLogger.cs
@@ -1,6 +1,6 @@
using System;
-namespace ZeroLevel.Services.Logging.Implementation
+namespace ZeroLevel.Logging
{
public sealed class DelegateLogger : ILogger
{
diff --git a/ZeroLevel/Services/Logging/Implementation/EncryptedFileLog.cs b/ZeroLevel/Services/Logging/Implementation/EncryptedFileLog.cs
index 7d52c25..17d9066 100644
--- a/ZeroLevel/Services/Logging/Implementation/EncryptedFileLog.cs
+++ b/ZeroLevel/Services/Logging/Implementation/EncryptedFileLog.cs
@@ -4,7 +4,7 @@ using System.IO;
using System.Text;
using ZeroLevel.Services.Encryption;
-namespace ZeroLevel.Services.Logging.Implementation
+namespace ZeroLevel.Logging
{
public class EncryptedFileLogOptions
{
diff --git a/ZeroLevel/Services/Logging/Log.cs b/ZeroLevel/Services/Logging/Log.cs
index 84c3702..3c9ed9d 100644
--- a/ZeroLevel/Services/Logging/Log.cs
+++ b/ZeroLevel/Services/Logging/Log.cs
@@ -1,7 +1,5 @@
using System;
using ZeroLevel.Logging;
-using ZeroLevel.Services.Logging;
-using ZeroLevel.Services.Logging.Implementation;
namespace ZeroLevel
{
@@ -20,20 +18,7 @@ namespace ZeroLevel
_router = new LogRouter();
}
- #endregion Ctor
-
- private static string FormatMessage(string line, params object[] args)
- {
- if (args == null || args.Length == 0) return line;
- try
- {
- return string.Format(line, args);
- }
- catch
- {
- return line;
- }
- }
+ #endregion Ctor
#region Logging
@@ -254,5 +239,18 @@ namespace ZeroLevel
}
#endregion Disposable
+
+ private static string FormatMessage(string line, params object[] args)
+ {
+ if (args == null || args.Length == 0) return line;
+ try
+ {
+ return string.Format(line, args);
+ }
+ catch
+ {
+ return line;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/ZeroLevel/Services/Logging/LogLevel.cs b/ZeroLevel/Services/Logging/LogLevel.cs
index d5089ba..f5cbe23 100644
--- a/ZeroLevel/Services/Logging/LogLevel.cs
+++ b/ZeroLevel/Services/Logging/LogLevel.cs
@@ -1,6 +1,6 @@
using System;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
///
/// Enum contains possible types of messages to write to the log
diff --git a/ZeroLevel/Services/Logging/LogLevelNameMapping.cs b/ZeroLevel/Services/Logging/LogLevelNameMapping.cs
index 96147b2..ebf6383 100644
--- a/ZeroLevel/Services/Logging/LogLevelNameMapping.cs
+++ b/ZeroLevel/Services/Logging/LogLevelNameMapping.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
+using ZeroLevel.Logging;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
internal static class LogLevelNameMapping
{
diff --git a/ZeroLevel/Services/Logging/LogRouterr.cs b/ZeroLevel/Services/Logging/LogRouterr.cs
index de5275c..8e508dc 100644
--- a/ZeroLevel/Services/Logging/LogRouterr.cs
+++ b/ZeroLevel/Services/Logging/LogRouterr.cs
@@ -1,8 +1,9 @@
using System;
using System.Collections.Generic;
using System.Threading;
+using ZeroLevel.Services.Logging;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
internal sealed class LogRouter :
ILogger,
diff --git a/ZeroLevel/Services/Logging/NoLimitedLogMessageBuffer.cs b/ZeroLevel/Services/Logging/NoLimitedLogMessageBuffer.cs
index 7a04dd7..d2b4252 100644
--- a/ZeroLevel/Services/Logging/NoLimitedLogMessageBuffer.cs
+++ b/ZeroLevel/Services/Logging/NoLimitedLogMessageBuffer.cs
@@ -1,9 +1,10 @@
using System;
using System.Collections.Concurrent;
-namespace ZeroLevel.Services.Logging
+namespace ZeroLevel.Logging
{
- internal sealed class NoLimitedLogMessageBuffer : ILogMessageBuffer
+ internal sealed class NoLimitedLogMessageBuffer
+ : ILogMessageBuffer
{
private readonly BlockingCollection> _messageQueue =
new BlockingCollection>();