3

使用中に[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

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

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

型からリフレクションでコンストラクターを呼び出すことができます

于 2012-09-19T13:14:02.213 に答える