当前位置:  开发笔记 > 编程语言 > 正文

有一种简单的方法可以使用InternalsVisibleToAttribute吗?

如何解决《有一种简单的方法可以使用InternalsVisibleToAttribute吗?》经验,为你挑选了2个好方法。

我有一个C#项目和一个带有主项目单元测试的测试项目.我想要有可测试的internal方法,我想测试它们没有你可以使用Visual Studio测试项目的神奇Accessor对象.我想使用,InternalsVisibleToAttribute但每次我都这样做,我必须回去查看如何做,我记得包括创建用于签署程序集的密钥文件,然后使用sn.exe获取公钥等等.

是否有一个实用程序可以自动创建SNK文件,设置项目以对程序集进行签名,提取公钥以及应用InternalsVisibleTo属性?

有没有办法使用没有签名程序集的属性?

Brian Rasmus.. 37

您不必使用已签名的程序集InternalsVisibleTo.如果不使用签名的程序集,则只需输入程序集的全名即可.

因此,如果您想要访问MyAssembly测试程序集(MyAssembly.Test),那么您需要AssemblyInfo.csMyAssembly是测试程序集的名称,如下所示:

[assembly: InternalsVisibleTo("CompanyName.Project.MyAssembly.Test")]


Frederik Ghe.. 13

Brian是对的,但是,在某些情况下,你有一个签名的程序集,你确实需要获得该程序集的公钥.

获得这个关键确实很麻烦.
因此,我已经这样做了:
我已经在VS.NET中定制了我的外部工具,这样我只需单击一下鼠标就可以获得当前项目程序集的公钥.
这就是它的完成方式:

在VS.NET中,打开"工具"菜单,然后单击"外部工具"

将打开一个名为"外部工具"的窗口

单击"添加"

对于标题,输入"获取公钥"

在"命令"中,输入 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe

在"参数"中,键入: -Tp $(TargetPath)

确保选中"使用输出窗口"选项

然后,构建项目,当您单击"获取公钥"时,您应该在输出窗口中看到此项目的公钥.



1> Brian Rasmus..:

您不必使用已签名的程序集InternalsVisibleTo.如果不使用签名的程序集,则只需输入程序集的全名即可.

因此,如果您想要访问MyAssembly测试程序集(MyAssembly.Test),那么您需要AssemblyInfo.csMyAssembly是测试程序集的名称,如下所示:

[assembly: InternalsVisibleTo("CompanyName.Project.MyAssembly.Test")]



2> Frederik Ghe..:

Brian是对的,但是,在某些情况下,你有一个签名的程序集,你确实需要获得该程序集的公钥.

获得这个关键确实很麻烦.
因此,我已经这样做了:
我已经在VS.NET中定制了我的外部工具,这样我只需单击一下鼠标就可以获得当前项目程序集的公钥.
这就是它的完成方式:

在VS.NET中,打开"工具"菜单,然后单击"外部工具"

将打开一个名为"外部工具"的窗口

单击"添加"

对于标题,输入"获取公钥"

在"命令"中,输入 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe

在"参数"中,键入: -Tp $(TargetPath)

确保选中"使用输出窗口"选项

然后,构建项目,当您单击"获取公钥"时,您应该在输出窗口中看到此项目的公钥.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有