簡體   English   中英

.NET Core 5 RawRabbit 序列化器/依賴注入問題

[英].NET Core 5 RawRabbit Serializer/Dependency Injection Issue

我有基於 .NET Core 2.2 的微服務。 我使用 RawRabbit(版本 2.0.0-beta9)作為服務總線。 與它一起安裝了以下軟件包:

<PackageReference Include="RawRabbit" Version="2.0.0-beta9" />
<PackageReference Include="RawRabbit.DependencyInjection.ServiceCollection" Version="2.0.0-beta9" />
<PackageReference Include="RawRabbit.Operations.Publish" Version="2.0.0-beta9" />
<PackageReference Include="RawRabbit.Operations.Subscribe" Version="2.0.0-beta9" />

這是我的 controller 的樣子:

 private readonly IBusClient _busClient;

//...constructor that inits the _busClient

[HttpPost("")]
public async Task<IActionResult> Post([FromBody] CreateActivity model)
{
    model.Id = Guid.NewGuid();
    await _busClient.PublishAsync(model); //Exception thrown here
    return Accepted($"Activities/{model.Name}");
}

當代碼嘗試執行以下操作時會出現問題:

await _busClient.PublishAsync(model);

我得到的例外是:

找不到方法:'無效 Newtonsoft.Json.JsonSerializer.set_TypeNameAssemblyFormat(System.Runtime.Serialization.Formatters.FormatterAssemblyStyle)'。

似乎它與您的消息代理或發布無關(順便說一下,如果您提到消息是否被您的消費者接收到可能會更好)但似乎您正在某處使用 Newton JSON 中的 TypeNameAssemblyFormat ,現在根據此處已過時。

[ObsoleteAttribute("TypeNameAssemblyFormat is obsolete. Use TypeNameAssemblyFormatHandling instead.")]
public FormatterAssemblyStyle TypeNameAssemblyFormat { get; set; }

您應該使用 TypeNameAssemblyFormatHandling。 也見這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM