我有这段代码在使用中包含[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))
    {...}

10-05 19:23