This commit is contained in:
Eugene Sadovoi 2018-12-30 13:29:20 -05:00
Родитель 42b60bb410
Коммит 9d014836f1
3 изменённых файлов: 23 добавлений и 18 удалений

Просмотреть файл

@ -1,12 +1,15 @@
using System;
using Microsoft.Extensions.Logging;
using System.Reflection;
using System.Runtime.CompilerServices;
using Unity.Builder;
using Unity.Extension;
using Unity.Policy;
using System.Security;
namespace Unity.Microsoft.Logging
{
[SecuritySafeCritical]
public class LoggingExtension : UnityContainerExtension
{
#region Fields
@ -54,29 +57,26 @@ namespace Unity.Microsoft.Logging
#endregion
#region IBuildPlanPolicy
public void BuildUp(ref BuilderContext context)
{
context.Existing = null == context.DeclaringType
? LoggerFactory.CreateLogger(context.Name ?? string.Empty)
: LoggerFactory.CreateLogger(context.DeclaringType);
context.BuildComplete = true;
}
#endregion
#region IResolveDelegateFactory
public ResolveDelegate<BuilderContext> GetResolver(ref BuilderContext context)
{
return ((ref BuilderContext c) =>
{
return null == c.DeclaringType
Type declaringType = null;
if (IntPtr.Zero != c.Parent)
{
unsafe
{
var parenContext = Unsafe.AsRef<BuilderContext>(c.Parent.ToPointer());
declaringType = parenContext.RegistrationType;
}
}
return null == declaringType
? LoggerFactory.CreateLogger(c.Name ?? string.Empty)
: LoggerFactory.CreateLogger(c.DeclaringType);
: LoggerFactory.CreateLogger(declaringType);
});
}

Просмотреть файл

@ -1,5 +1,5 @@
using System;
using System.Security;
//[assembly:CLSCompliant(true)]
//[assembly:SecurityTransparent]
[assembly:CLSCompliant(true)]
[assembly: AllowPartiallyTrustedCallers]

Просмотреть файл

@ -38,6 +38,11 @@
<UnityContainer>..\..\Container\src\Unity.Container.csproj</UnityContainer>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup Condition="Exists('$(UnityContainer)')">
<ProjectReference Include="$(UnityContainer)" />
</ItemGroup>