Итак, я написал короткий код для быстрого преобразования между бизнес-объектами и моделями просмотра. Не суетиться в моем собственном блоге, но you can find the details here, если вам интересно или нужно знать.Неявные преобразования типов в отражении
Одна проблема, с которой я столкнулся, это то, что у меня есть собственный тип коллекции ProductCollection, и мне нужно включить это в строку [] в моей модели. Очевидно, так как не существует неявного приведения по умолчанию, я получаю исключение в своем конверторе контрактов.
Итак, я думал, что написать следующий немного кода, и это должно решить проблему:
public static implicit operator string[](ProductCollection collection) {
var list = new List<string>();
foreach (var product in collection)
{
if (product.Id == null)
{
list.Add(null);
}
else
{
list.Add(product.Id.ToString());
}
}
return list.ToArray();
}
Однако, он все еще терпит неудачу с тем же исключением литых. Мне интересно, если это имеет какое-то отношение к размышлению? Если да, есть ли что-нибудь, что я могу здесь сделать? Я также открыт для архитектурных решений!
Какую внутреннюю ценность вы надеетесь получить от добавления нулевых строк в список, который вы генерируете? Просто интересуюсь. –
Вы сказали 'cast exception', но объявили оператор' implicit'. Вы имели в виду объявление оператора «Явный»? Отправьте код, в котором вы ожидаете, что это произойдет. –
Nathan Taylor, если product.Id был null, ToString() на нем закончит юниверс. –