Le code est faux:Pour Linq Select Statement, comment construire une sous-classe de manière générale au moment de l'exécution?
public class ParentClass
{ decimal quantity,
decimal price
}
IQueryable<ParentClass> parents;
//SonClass is created at run time
//SonClass has some extra property, such as amount=quantity*price, which is defined by a string at run time
IQueryable<SonClass> sons=parents.Select(p=>new SonClass(p){ attachedProperty1=..., attachedProperty2=...})
Si je le code source de ParentClass, je sais comment créer le sonClass au moment de l'exécution. En fait, SonClass devrait avoir un constructeur approprié pour l'instruction Linq select. J'ai essayé le code suivant faux:
public SonClass(ParentClass parent)
{
...
}
Quand on n'a pas le code source de ParentClass, comment écrire un code générique?
Ou, peut-être que vous avez une nouvelle façon d'obtenir le même résultat. Les résultats souhaités consistent à créer dynamiquement une sous-classe de ParentClass avec des propriétés supplémentaires en lecture seule définies par l'instruction Linq Select.
Merci d'avance.
Ying
Un exemple de type défini par l'utilisateur peut être utilisé dans l'instruction LINQ Select.http://blogs.msdn.com/b/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx. – Ying
s'il s'agit d'une classe dynamique (donc les propriétés ne sont pas connues avant l'exécution), que va faire le consommateur? vous pouvez utiliser IDynamicObject je suppose - http://stackoverflow.com/questions/245975/how-do-you-implement-c4s-idynamicobject-interface –
1. Bien que ce soit une classe dynamique, c'est une sous-classe de la classe d'origine . Donc, le consommateur le traitera comme l'original. 2. Il semble que IDynamicObject n'est pas ce que je cherche. Merci. – Ying