Как получить nameof () из свойства в коллекции? - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь получить правильный nameof из следующего упрощенного примера:

public class Order 
{
    public int OrderId { get; set; }
    public List<Item> Items { get; set; }
}

public class Item
{
    public string Sku { get; set; }
}

var order = new Order();
    Requires.That(order.Items.TrueForAll(x => !string.IsNullOrEmpty(x.Sku)), nameof(order.Items), "Sku must contain a value");

I, как мне получить nameof как nameof(order.Items.Sku)?

Ответы [ 3 ]

1 голос
/ 19 июня 2020

Вы не можете.

Существует запрос , чтобы поддержать это, и я уже дал ему свою поддержку, чего он стоит, но это противоречит текущей спецификации языка.

0 голосов
/ 19 июня 2020

К сожалению, это невозможно.

Учитывая, что вы знаете, что обрабатываете Item экземпляров, лучше всего вместо этого использовать nameof(Item.Sku).

0 голосов
/ 19 июня 2020

Вы можете попробовать что-то вроде этого

order.Items.DefaultIfEmpty().Select(x => nameof(x.Sku)).First()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...