我的代码在使用
中有[Ent] public static void Retion()
{
using (Ent entitiesContext = new Ent())
{...}
{
我需要动态传递[Ent],如下所示:
public static void Retion(Type ds)
{
using (ds entitiesContext = new ds())
{...}
{
这当然不起作用。如何更改它以便我可以动态传递它?
答案 0 :(得分: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))
{...}
答案 1 :(得分:3)
怎么样
public static void Retion<T>() where T : IDisposable, new()
{
using (T entitiesContext = new T())
{...}
}
答案 2 :(得分:0)
public static void Retion&lt; T>(T ds)其中T:new() {
using (T entitiesContext = new T())
{...}
{
答案 3 :(得分:0)
你可以通过反射来调用构造函数