Skip to content

Commit ed32118

Browse files
authored
Merge pull request #17 from XerProjects/hotfix-2.0.3
Fix object disposed exception when sending commands/events
2 parents eafab10 + 9869ca9 commit ed32118

File tree

5 files changed

+330
-226
lines changed

5 files changed

+330
-226
lines changed

Src/Xer.Cqrs.Extensions.Autofac/CqrsCommandHandlerSelector.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,12 @@ public ICqrsCommandHandlerSelector ByInterface(Lifetime lifetime, params Assembl
6666

6767
_builder.Register(context =>
6868
{
69+
var c = context.Resolve<IComponentContext>();
70+
var adapter = new ComponentContextAdapter(c);
6971
return new CommandHandlerDelegateResolver(
7072
CompositeMessageHandlerResolver.Compose(
71-
new ContainerCommandAsyncHandlerResolver(new ComponentContextAdapter(context)),
72-
new ContainerCommandHandlerResolver(new ComponentContextAdapter(context))));
73+
new ContainerCommandAsyncHandlerResolver(adapter),
74+
new ContainerCommandHandlerResolver(adapter)));
7375
}).AsSelf().SingleInstance();
7476

7577
return this;
@@ -116,8 +118,9 @@ public ICqrsCommandHandlerSelector ByAttribute(Lifetime lifetime, params Assembl
116118

117119
_builder.Register(context =>
118120
{
119-
SingleMessageHandlerRegistration singleMessageHandlerRegistration = new SingleMessageHandlerRegistration();
120-
singleMessageHandlerRegistration.RegisterCommandHandlersByAttribute(distinctAssemblies, context.Resolve);
121+
var c = context.Resolve<IComponentContext>();
122+
var singleMessageHandlerRegistration = new SingleMessageHandlerRegistration();
123+
singleMessageHandlerRegistration.RegisterCommandHandlersByAttribute(distinctAssemblies, c.Resolve);
121124
return new CommandHandlerDelegateResolver(singleMessageHandlerRegistration.BuildMessageHandlerResolver());
122125
}).AsSelf().SingleInstance();
123126

Src/Xer.Cqrs.Extensions.Autofac/CqrsEventHandlerSelector.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,10 @@ public ICqrsEventHandlerSelector ByInterface(Lifetime lifetime, params Assembly[
6666
}
6767

6868
_builder.Register(context =>
69-
{
70-
return new EventHandlerDelegateResolver(new ContainerEventHandlerResolver(new ComponentContextAdapter(context)));
69+
{
70+
var c = context.Resolve<IComponentContext>();
71+
return new EventHandlerDelegateResolver(
72+
new ContainerEventHandlerResolver(new ComponentContextAdapter(c)));
7173
}).AsSelf().SingleInstance();
7274

7375
return this;
@@ -114,8 +116,9 @@ public ICqrsEventHandlerSelector ByAttribute(Lifetime lifetime, params Assembly[
114116

115117
_builder.Register(context =>
116118
{
119+
var c = context.Resolve<IComponentContext>();
117120
var handlerRegistration = new MultiMessageHandlerRegistration();
118-
handlerRegistration.RegisterEventHandlersByAttribute(distinctAssemblies, context.Resolve);
121+
handlerRegistration.RegisterEventHandlersByAttribute(distinctAssemblies, c.Resolve);
119122
return new EventHandlerDelegateResolver(handlerRegistration.BuildMessageHandlerResolver());
120123
}).AsSelf().SingleInstance();
121124

0 commit comments

Comments
 (0)