Blazor: невозможно получить словарь с объектом в качестве ключа - PullRequest
0 голосов
/ 18 ноября 2018

Я разрабатываю приложение 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 в качестве ключей доставляет мне неприятности, но мне не ясно, почему это не должно работать. (У меня, конечно, нет проблем с использованием этих словарей в другом месте моего приложения.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...