Petapoco:操作可能会破坏运行时的稳定性

时间:2017-01-19 07:03:13

标签: c# .net petapoco

我正在尝试使用Petapoco的多重查询。

代码在运行.NET 4.6.1的本地计算机上正常工作,但在部署到我正在使用的运行.NET 4.5的主机时抛出 System.Security.VerificationException

来自PetaPoco/Database.cs:2253

的剪贴画
while (true)
{
    TRet poco;
    try
    {
        if (!r.Read())
            break;
        poco = factory(r, cb); // <-- The exception happens here
    }
    catch (Exception x)
    {
        if (OnException(x))
            throw;
        yield break;
    }

    if (poco != null)
        yield return poco;
    else
        bNeedTerminator = true;
}

“cb”是映射pocos的回调,但是为了参数我只是返回通过的对象:

public Person MapRow(Person person, Category category, Country country) {
    return person;
}

我正在调用这样的方法:

db.Query<Person>(
   new[] { typeof(Person), typeof(Category), typeof(Country) },
   new PersonRelator().MapRow,
   sql
);

为什么会抛出此异常的任何线索?

1 个答案:

答案 0 :(得分:2)

我认为这是因为托管环境设置为中等信任。由于PetaPoco在正常操作期间生成IL代码,因此中等信任托管环境将不允许它并将引发异常。