首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >统一3-无法解析类型名称或别名xxxx。

统一3-无法解析类型名称或别名xxxx。
EN

Stack Overflow用户
提问于 2015-05-26 14:31:31
回答 1查看 2.2K关注 0票数 1

在这里,我已经阅读了几个相关的问题,但我似乎仍然无法让自己的Unity配置工作起来。

这是我的配置文件。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <assembly name="System.Security" />
    <namespace name="System.Security.Cryptography" />
    <container name="Default">
        <register type="HashAlgorithm" mapTo="SHA256Managed" />
        <register type="SymmetricAlgorithm" mapTo="AesCryptoServiceProvider" />
    </container>
</unity>

我得到的错误信息是..。

无法解析类型名称或别名AesCryptoServiceProvider。请检查您的配置文件并验证此类型名称。

HashAlgorithm通常是解析的,而不是AES提供程序。

在我的项目中引用了System.Security程序集,如果我这样做,可以解析SymmetricAlgorithm类型。

代码语言:javascript
复制
IUnityContainer Container = new UnityContainer ();

Container.RegisterType<SymmetricAlgorithm, AesCryptoServiceProvider> ();

..。但是,如果可能的话,我想把配置排除在代码之外。

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 11:23:39

问题是AesCryptoServiceProvider不在System.Security中。您将在System.Core程序集中找到它。

因此,您需要修复您的统一配置,以便还包括该程序集,如下所示:

代码语言:javascript
复制
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
  <namespace name="System.Security.Cryptography" />
  <assembly name="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <container name="Default">
    <register type="HashAlgorithm" mapTo="SHA256Managed" />
    <register type="SymmetricAlgorithm" mapTo="AesCryptoServiceProvider" />
  </container>
</unity>

注意:您需要提供程序集的全名(带有版本、区域性和令牌)。这是因为团结将名称空间和程序集名称与类型名称连接起来,然后它将检查结果类型是否存在(检查这里的文件。当使用名称加载类型时,大多数情况下您将需要完全限定的名称,例如,请参阅Type.GetType中关于类型名称的注释

要获取的类型的程序集限定名称。见AssemblyQualifiedName。如果类型位于当前正在执行的程序集中或Mscorlib.dll中,则只需提供按其命名空间限定的类型名称即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30461486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档