我正在使用ADO.NET EF
和Repository pattern
。我想分離一些我的實體常見的邏輯,並且我決定最好的方法是使用泛型方法。這是我的方法的聲明:C# - 向通用類型的通用方法的向上轉換
internal static void ChangeCode<T>(IService<T> service, Entity entity, MaskedTextBox txtBox, string newCode, long? entityId)
where T : Common.DbContextEntities.Entity
IService<T>
是基類,所有服務中獲得和Entity
是基類形式的所有實體派生。但是在運行時,我會通過更具體的服務和實體,如SoleService
和Sole
。我想完成的是以某種方式聲明一個service
和entity
到運行時類型和那些屬性在整個方法中可見。爲了在這裏清楚是什麼,我現在要做的:
if (entity.GetType() == typeof(Sole))
{
Sole tempEntity = new Sole();
ISoleService tempService = UnityDependencyResolver.Instance.GetService<ISoleService>();
的問題是我只能在if (entity.GetType() == typeof(Sole))
範圍內使用tempEntity
和tempService
,如果我必須覈查幾種類型的(這實際上是案件)我必須重複每種不同類型的所有業務邏輯。我正在尋找一種在運行時設置tempEntity
和tempService
的方法,具體方式是可以在方法中隨處使用它們。
嗯,'IService'是你寫的這個父母。但我認爲爲我想要在我的方法中調用的服務創建另一個接口實際上是非常好的主意。謝謝。現在就試試吧! –
Leron
2013-03-26 09:51:09