gpt4 book ai didi

c# - 统一 5.8 : registration by convention "Inheritance security rules violated"

转载 作者:行者123 更新时间:2023-11-30 15:53:37 24 4
gpt4 key购买 nike

我已将 Unity 4 容器更新为 Unity 5.8,但我在按惯例在此版本中注册时遇到问题。它完全不起作用。新项目,安装了以下包:

Install-Package Unity.Container -v 5.8.7
Install-Package Unity.RegistrationByConvention -v 2.1.7

super 简单的代码:

class Program
{
static void Main(string[] args)
{
UnityContainer uc = new UnityContainer();

uc.RegisterTypes(AllClasses.FromLoadedAssemblies(), (c) => WithMappings.FromMatchingInterface(c));
}
}

它给出了异常

System.TypeLoadException: „Inheritance security rules violated while overriding member: 
Unity.RegistrationByConvention.Exceptions.DuplicateTypeMappingException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.

我不知道哪里出了问题,它在以前的版本中是有效的。有谁知道如何在新Unity中使用约定注册?

最佳答案

查看this answer ,这似乎是 Unity.RegistrationByConvention 的问题。他们的 DuplicateTypeMappingException 应该在 GetObjectData 上有 SecurityCriticalAttribute,它确实存在于 System.Exception 中,如异常中所述已发布。

与此同时,我认为只注册您自己的类型就足够了,而不仅仅是项目中每个库中的所有内容。

关于c# - 统一 5.8 : registration by convention "Inheritance security rules violated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com