c# - 将类型传递给泛型方法(嵌套泛型)

标签 c# nhibernate dynamic nhibernate-mapping

我还没有TRootEntity时如何调用下面的方法, 但只有它的 TYPE :

public void Class<TRootEntity>(Action<IClassMapper<TRootEntity>> customizeAction) where TRootEntity : class;

最终目标是运行下面的代码

var mapper = new ModelMapper();
mapper.Class<MyClass>(ca =>
{
    ca.Id(x => x.Id, map =>
    {
        map.Column("MyClassId");
        map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 }));
    });
    ca.Property(x => x.Something, map => map.Length(150));
});

用于创建动态NHibernate HBM .更多信息可用here

相关问题见herehere .

最佳答案

您不能通过传递运行时类型来编写要运行的通用方法。

泛型需要在编译时有类型。

您可能需要使用反射(参见 Ferreira 先生关于如何做到这一点的回答)。

关于c# - 将类型传递给泛型方法(嵌套泛型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562685/

相关文章:

nhibernate - 建模一对零或一对关系(Z 基数)

NHibernate 在使用 Fetch 时返回子集合中的重复对象

asp.net-mvc-3 - nHibernate 二级缓存,带有 memcached 和随机无效强制转换

javascript - 如何从 JS 更改动态 CSS 类的 bg 颜色

c# - 将 Polly HTTP 请求转换为 F#

c# - 为什么 Blazor 应用在​​重新加载任何页面时显示错误

c# - msmq 错误 "the following errors must be resolved"

c# - 正则表达式 11 位字符串捕获

javascript - 将变量值指定为变量名

C# 从通用基类派生 (T : U<T>)