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;
}
}