J'ai donc écrit un petit morceau de code pour accélérer la conversion entre les objets métier et les modèles de vue. Pas pour proxénète mon propre blog, mais you can find the details here si vous êtes intéressé ou avez besoin de savoir. Un problème que j'ai rencontré est que j'ai un type de collection personnalisé, ProductCollection, et je dois le transformer en une chaîne [] sur mon modèle. Évidemment, puisqu'il n'y a pas de distribution implicite par défaut, j'obtiens une exception dans mon convertisseur de contrat.Conversions de types implicites dans Reflection
Donc, je pensais écrire le petit morceau de code suivant et qui devrait résoudre le problème:
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();
}
Cependant, il ne fonctionne toujours pas avec la même exception en fonte. Je me demande si cela a quelque chose à voir avec la réflexion? Si oui, y a-t-il quelque chose que je puisse faire ici? Je suis ouvert aux solutions architecturales, aussi!
Quelle valeur intrinsèque espérez-vous obtenir en ajoutant les chaînes nulles à la liste que vous générez? Je me demandais juste. –
Vous avez dit 'cast exception' mais avez déclaré un opérateur' implicit'. Voulez-vous dire déclarer un opérateur 'explicite'? Postez le code là où vous vous attendez à ce que cela se déclenche. –
Nathan Taylor, si product.Id était nul, un ToString() sur lui mettrait fin à l'univers. –