3

我有这段代码在 using 里面有 [Ent]

 public static void Retion()
        {

            using (Ent entitiesContext = new Ent())
                {...}
         {

我需要动态传递 [Ent],如下所示:

 public static void Retion(Type ds)
            {

                using (ds entitiesContext = new ds())
                    {...}
             {

这当然行不通。如何更改它以便我可以动态传递它?

4

4 回答 4

3

也许通过泛型:

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))
    {...}
于 2012-09-19T13:14:07.750 回答
3

怎么样

   public static void Retion<T>() where T : IDisposable, new()
   { 

            using (T entitiesContext = new T()) 
                {...} 
   }
于 2012-09-19T13:14:22.563 回答
0

公共静态无效 Retion< T >(T ds) 其中 T :new() {

            using (T entitiesContext = new T())
                {...}
         {
于 2012-09-19T13:13:50.880 回答
0

您可以通过反射从类型调用构造函数

于 2012-09-19T13:14:02.213 回答