Skip to content

Commit 2fe2212

Browse files
nivalxerliuhaoyang
andauthored
fix issues #261 (#264)
Signed-off-by: nivalxer <[email protected]> Co-authored-by: liuhaoyang <[email protected]>
1 parent f0ad4ce commit 2fe2212

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

src/AspectCore.Extensions.Autofac/ContainerBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static ContainerBuilder RegisterDynamicProxy(this ContainerBuilder contai
6767
// middleware can be added inside it.
6868
args.ComponentRegistration.PipelineBuilding += (_, pipeline) =>
6969
{
70-
pipeline.Use(ActivationResolveMiddleware.Instance,MiddlewareInsertionMode.StartOfPhase);
70+
pipeline.Use(ActivationResolveMiddleware.Instance);
7171
};
7272
};
7373

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using AspectCore.Configuration;
2+
using AspectCore.Extensions.Autofac;
3+
using AspectCore.Extensions.Test.Fakes;
4+
using Autofac;
5+
using Xunit;
6+
7+
namespace AspectCoreTest.Autofac.Issues
8+
{
9+
// https://github.com/dotnetcore/AspectCore-Framework/issues/261
10+
public class PropertyInjectorProxyWithVirtualTests
11+
{
12+
public class Foo
13+
{
14+
public Bar Bar { get; set; }
15+
[CacheInterceptor]
16+
public virtual void Do()
17+
{
18+
Bar.Do();
19+
}
20+
}
21+
22+
public class Bar
23+
{
24+
public void Do()
25+
{
26+
}
27+
}
28+
29+
private ContainerBuilder CreateBuilder()
30+
{
31+
return new ContainerBuilder().RegisterDynamicProxy(config =>
32+
{
33+
config.Interceptors.AddDelegate(next => ctx => next(ctx), Predicates.ForNameSpace("AspectCore.Extensions.Test.Issues"));
34+
});
35+
}
36+
37+
[Fact]
38+
public void PropertyInjectorProxyWithVirtual_Test()
39+
{
40+
var builder = CreateBuilder();
41+
builder.RegisterType<Bar>().AsSelf();
42+
builder.RegisterType<Foo>().AsSelf().PropertiesAutowired();
43+
var container = builder.Build();
44+
var foo = container.Resolve<Foo>();
45+
foo.Do();
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)