Я разрабатываю приложение Blazor, где в разделе функций одного из моих представлений у меня есть:
var dict = await Http.GetJsonAsync<Dictionary<Node, Decimal>>($"api/Home/test");
Узел - это пользовательский объект, который я определил. Тогда в соответствующем действии контроллера у меня есть:
[HttpGet("[action]")]
public Dictionary<Node, decimal> test()
{
var dict = new Dictionary<Node, decimal>();
var node = new Node();
dict[node] = 10m;
return dict;
}
Когда я пытаюсь получить словарь таким образом, я вижу эту ошибку в консоли:
WASM: [System.ArgumentException] Значение "App.Shared.Node" равно
не относится к типу «App.Shared.Node» и не может использоваться в этом
универсальная коллекция.
Если я обновлю один из этих словарей, но ничего не добавлю, я не увижу эту ошибку. Я подозреваю, что что-то из-за факта использования моих объектов Node в качестве ключей доставляет мне неприятности, но мне не ясно, почему это не должно работать. (У меня, конечно, нет проблем с использованием этих словарей в другом месте моего приложения.)