masastack / MASA.Framework

.NET next-generation microservice development framework, which provides cloud native best practices based on Dapr.
https://docs.masastack.com/framework/getting-started/overview
MIT License
695 stars 111 forks source link

Publisher 这个类的 _daprAppId 字段在构造函数中处理有点问题 #701

Closed huashao1123 closed 3 months ago

huashao1123 commented 3 months ago

Description

private readonly IServiceProvider _serviceProvider; private DaprClient? _daprClient; public DaprClient DaprClient => _daprClient ??= _serviceProvider.GetRequiredService(); private readonly string _pubSubName; private readonly string _appId; private readonly string? _daprAppId; private readonly ILogger? _logger;

[ExcludeFromCodeCoverage] public Publisher(IServiceProvider serviceProvider, string pubSubName, string appId, string? daprAppId) { _serviceProvider = serviceProvider; _logger = serviceProvider.GetService<ILogger>(); _pubSubName = pubSubName; if (serviceProvider.EnableIsolation()) { if (_daprAppId.IsNullOrWhiteSpace()) _logger?.LogError("Isolation is enabled but dapr AppId required for integration events is not configured");

     MasaArgumentException.ThrowIfNullOrWhiteSpace(daprAppId);
 }

 _appId = appId;
 _daprAppId = daprAppId;

} 在环境隔离的时候,_daprAppId 这个字段需要先赋值,才能使用,否则会一直抛异常 41d11df9851431cd41fafd657a8547d

Reproduction Steps

No response

Expected behavior

No response

Actual behavior

No response

Known Workarounds

No response

.NET version

No response

MASA Framework version

No response

Other information

No response