Commit 00edf7b2 authored by yangxiaodong's avatar yangxiaodong

Merge remote-tracking branch 'origin/dev_2.0' into dashboard

parents 773efb6c 5c82ba1d
using System; using System;
using DotNetCore.CAP.Abstractions; using DotNetCore.CAP.Abstractions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace DotNetCore.CAP.Internal namespace DotNetCore.CAP.Internal
...@@ -22,16 +21,14 @@ namespace DotNetCore.CAP.Internal ...@@ -22,16 +21,14 @@ namespace DotNetCore.CAP.Internal
} }
public IConsumerInvoker CreateInvoker(ConsumerContext consumerContext) public IConsumerInvoker CreateInvoker(ConsumerContext consumerContext)
{
using (var scope = _serviceProvider.CreateScope())
{ {
var context = new ConsumerInvokerContext(consumerContext) var context = new ConsumerInvokerContext(consumerContext)
{ {
Result = new DefaultConsumerInvoker(_logger, scope.ServiceProvider, _modelBinderFactory, consumerContext) Result = new DefaultConsumerInvoker(_logger, _serviceProvider,
_modelBinderFactory, consumerContext)
}; };
return context.Result; return context.Result;
} }
} }
}
} }
\ No newline at end of file
...@@ -35,8 +35,11 @@ namespace DotNetCore.CAP.Internal ...@@ -35,8 +35,11 @@ namespace DotNetCore.CAP.Internal
{ {
_logger.LogDebug("Executing consumer Topic: {0}", _consumerContext.ConsumerDescriptor.MethodInfo.Name); _logger.LogDebug("Executing consumer Topic: {0}", _consumerContext.ConsumerDescriptor.MethodInfo.Name);
var obj = ActivatorUtilities.GetServiceOrCreateInstance(_serviceProvider, using (var scope = _serviceProvider.CreateScope())
_consumerContext.ConsumerDescriptor.ImplTypeInfo.AsType()); {
var provider = scope.ServiceProvider;
var serviceType = _consumerContext.ConsumerDescriptor.ImplTypeInfo.AsType();
var obj = ActivatorUtilities.GetServiceOrCreateInstance(provider, serviceType);
var jsonConent = _consumerContext.DeliverMessage.Content; var jsonConent = _consumerContext.DeliverMessage.Content;
var message = Helper.FromJson<Message>(jsonConent); var message = Helper.FromJson<Message>(jsonConent);
...@@ -56,6 +59,7 @@ namespace DotNetCore.CAP.Internal ...@@ -56,6 +59,7 @@ namespace DotNetCore.CAP.Internal
await SentCallbackMessage(message.Id, message.CallbackName, result); await SentCallbackMessage(message.Id, message.CallbackName, result);
} }
} }
}
private async Task<object> ExecuteAsync(object @class) private async Task<object> ExecuteAsync(object @class)
{ {
......
...@@ -49,7 +49,10 @@ namespace DotNetCore.CAP.Internal ...@@ -49,7 +49,10 @@ namespace DotNetCore.CAP.Internal
{ {
var executorDescriptorList = new List<ConsumerExecutorDescriptor>(); var executorDescriptorList = new List<ConsumerExecutorDescriptor>();
var consumerServices = provider.GetServices<ICapSubscribe>(); using (var scoped = provider.CreateScope())
{
var scopedProvider = scoped.ServiceProvider;
var consumerServices = scopedProvider.GetServices<ICapSubscribe>();
foreach (var service in consumerServices) foreach (var service in consumerServices)
{ {
var typeInfo = service.GetType().GetTypeInfo(); var typeInfo = service.GetType().GetTypeInfo();
...@@ -62,6 +65,7 @@ namespace DotNetCore.CAP.Internal ...@@ -62,6 +65,7 @@ namespace DotNetCore.CAP.Internal
} }
return executorDescriptorList; return executorDescriptorList;
} }
}
private static IEnumerable<ConsumerExecutorDescriptor> FindConsumersFromControllerTypes( private static IEnumerable<ConsumerExecutorDescriptor> FindConsumersFromControllerTypes(
IServiceProvider provider) IServiceProvider provider)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment