public interface IName  
    { 
        int Age { get; set; } 
        string Name { get; set; } 
    } 
  
    public class Person  
    { 
        public int Age{get;set;} 
        public string Name { get; set; } 
        public Person() 
        { } 
        public Person(string name,int age) 
        { 
            Name = name; 
            Age = age; 
        } 
    } 
  
    public class EmptyEntity : IName 
    { 
        public string Name { get; set; } 
        public int Age { get; set; } 
    } 
  
    public class ClassToInterface 
    { 
        /// <summary> 
        ///  
        /// </summary> 
        /// <typeparam name="T"></typeparam> 
        /// <typeparam name="TResult">it implements the interface.</typeparam> 
        /// <returns></returns> 
        public static IName ConvertClassToInterface<T>(T obj) 
        { 
            IName entity=new EmptyEntity(); 
            PropertyInfo[] descProperties = typeof(IName).GetProperties(); 
            Type type = obj.GetType(); 
            foreach(PropertyInfo propertyInfo in descProperties) 
            { 
                propertyInfo.SetValue(entity,type.GetProperty(propertyInfo.Name).GetValue(obj, null), null); 
            } 
            Console.WriteLine("Result:{0}={1}",entity.Name,entity.Age); 
            return entity; 
        } 
  
    }