我正在编写一个带有参数的函数,该参数需要 TEntity 类型。我希望能够在运行时将特定类型传递给它,但我无法编译它:
public LoadOperation LoadQuery(EntityQuery<???> query)
{
LoadOperation loadOperation = DomainContext.Load(query,LoadBehavior.MergeIntoCurrent, false);
return loadOperation;
}
无法编译的代码如下所示:
EntityQuery<Person> q = DomainContext.GetPerson();
LoadQuery(q);
我尝试了不同的方法来完成这项工作,但我不知所措。我需要做什么?
最佳答案
取决于您的 DomainContext.Load() 函数的外观:
public LoadOperation LoadQuery<T>(EntityQuery<T> query)
{
LoadOperation loadOperation = DomainContext.Load(query,LoadBehavior.MergeIntoCurrent, false);
return loadOperation;
}
然后仍然像以前一样使用它:
EntityQuery<Person> q = DomainContext.GetPerson();
LoadQuery(q);
类型系统应该推断你的意思是 LoadQuery<Person>()
来自参数的函数版本。
不幸的是,我怀疑这也意味着对上述 Load() 函数进行一些修改。
关于c# - 如何在运行时在 C# 中设置类型 TSomething?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143223/