Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConsoleApplication1
- {
- //[Serializable]
- public class Animal //: ICloneable
- {
- public T Promote<T>() where T : new()
- {
- var clone = new T();
- var members = GetType().GetMembers(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
- foreach (var member in members.Where(m => m.MemberType == MemberTypes.Property))
- clone
- .GetType()
- .GetProperty(member.Name)
- .SetValue(clone, GetType().GetProperty(member.Name).GetValue(this, null), null);
- return clone;
- }
- }
- //[Serializable]
- public class Dog : Animal
- {
- }
- public class Program
- {
- private static void Main(string[] args)
- {
- var animal = new Animal();
- var dog = animal.Promote<Dog>();
- Console.WriteLine(dog==null);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment