Evgenios1 Δημοσ. 27 Αυγούστου 2009 Δημοσ. 27 Αυγούστου 2009 Υπαρχει τροπος να μετατρεψω ενα anonymous type σε ενα τυπο; Εκτος του linq μεσου reflection.
djsolid Δημοσ. 28 Αυγούστου 2009 Δημοσ. 28 Αυγούστου 2009 Αυτό φαντάζομαι θέλεις να το κάνεις για να το επιστρέψεις σε μέθοδο σωστα? Μπορείς να το πετύχεις μέσω του Type Inference. Σχετικά μπορείς να βρεις στο συγκεκριμένο blog Αν δεν εννοείς αυτό, διευκρίνισε λίγο παραπάνω.
Evgenios1 Δημοσ. 28 Αυγούστου 2009 Μέλος Δημοσ. 28 Αυγούστου 2009 Μπα... Λεει μονο για casting απο anonymous σε anonymous. > class Program { static void Main(string[] args) { var an1 = new {val=1 }; var an2 = new {val=2 }; an2 = Cast(an1, an2); Console.WriteLine(an2.val); Console.Read(); } static T Cast<T>(object o, T type) where T : class { return (T)o; } } Εχω ψαξει στο codeproject και ειδα ο,τι το κανουν με reflection και ετσι εκανα αυτο >public static class Ex { public static T LinqTo<T>(this object anonymous) { object obj; Type knowedType = typeof(T); Type unknowType = anonymous.GetType(); obj = Activator.CreateInstance(knowedType); foreach (var item in unknowType.GetProperties()) { var p = knowedType.GetProperty(item.Name); if (p != null) Move(anonymous, item, obj, p); var f = knowedType.GetField(item.Name); if (f != null) Move(anonymous, item, obj, knowedType.GetField(item.Name)); } return (T)obj; } static void Move(object fromObj, PropertyInfo fromProp, object toObj, PropertyInfo toProp) { object value = fromProp.GetValue(fromObj, null); toProp.SetValue(toObj, value, null); } static void Move(object fromObj, PropertyInfo fromProp, object toObj, FieldInfo toField) { object value = fromProp.GetValue(fromObj, null); toField.SetValue(toObj, value); } } Θελω να ξερω αν υπαρχει αλλος τροπς εκτος του reflection.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.