我有这段代码在使用中包含[Ent]
public static void Retion()
{
using (Ent entitiesContext = new Ent())
{...}
{
我需要动态传递[Ent],如下所示:
public static void Retion(Type ds)
{
using (ds entitiesContext = new ds())
{...}
{
这当然是行不通的。如何更改它以便可以动态传递它?
最佳答案
也许通过泛型:
public static void Retion<T>() where T : IDisposable, new()
{
using (T entitiesContext = new T())
{...}
然后
Retion<Ent>()
请注意,要对
entitiesContext
做任何有用的事情,您可能还需要一些基类约束,即public static void Retion<T>() where T : DataContext, new()
{
using (T entitiesContext = new T())
{...}
当然,那与以下内容没有太大不同:
public static void Retion(Type type)
{
using (DataContext entitiesContext =
(DataContext)Activator.CreateInstance(type))
{...}