Generic Factory Pattern

public static class EntityFactory

{

public static T CreateEntity<T>() where T : new()

{

//Nesnemizi yaratalım

T t = new T();

return t;

 

}

AdresDefteri.Entity.Kisi k = EntityFactory.CreateEntity<AdresDefteri.Entity.Kisi>();

----

public static class EntityFactory

{

public static T CreateEntity<T>() where T : new()

{

//Nesnemizi yaratalım

T t = new T();

//has ilişkili Collection ları Kontrol edelim eğer varsa onlarıda instancelayalım

Type typeData = typeof(T);

FieldInfo[] fields = typeData.GetFields(BindingFlags.Instance | BindingFlags.NonPublic);

foreach (FieldInfo field in fields)

{

if (field.FieldType.Name.Equals("IList`1"))

{

Type genericIListType = field.FieldType;

Type genericListType = typeof(List<>);

Type constructedListType = genericListType.MakeGenericType(genericIListType.GetGenericArguments());

field.SetValue(t,Activator.CreateInstance(constructedListType));

}

}

return t;

}

}

06 Ağustos 2007 Pazartesi 12:11 gönderen MuratHAKSAL
Filed Under: , ,

Yorumlar