首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏newbe36524的技术专栏

    如何指定多个项目的 InternalsVisibleTo

    InternalsVisibleTo 属性允许你指定一个或多个程序集,这些程序集可以访问当前程序集中的内部类型。 本文将介绍如何指定多个项目的 InternalsVisibleTo,从而不需要在每个项目中都指定一遍。 代码演示 假如我们有一个项目,名称为 TestProject1。 则我们需要在 TestProject1 中指定 InternalsVisibleTo 属性,如下所示: [assembly: InternalsVisibleTo("TestProject1.Tests ")] 但其实,我们也可以在 TestProject1.csproj 中指定 InternalsVisibleTo 属性,如下所示: <Project> <ItemGroup> 总结 本文介绍了如何指定多个项目的 InternalsVisibleTo 属性,从而不需要在每个项目中都指定一遍。

    51420编辑于 2023-08-23
  • 来自专栏林德熙的博客

    IIncrementalGenerator 增量 Source Generator 生成代码入门 判断程序集之间的 InternalsVisibleTo 关系

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何判断两个程序集之间是否存在 InternalsVisibleTo 关系 当获取到两个程序集时,如果要开始准备生成相关代码,可能会因为不知道两个程序集之间是否存在 InternalsVisibleTo 关系,也就是是否应该导出其 internal 的类型而困扰。 在能够获取到 IAssemblySymbol 类型的对象,即可通过 GivesAccessTo 方法判断两个程序集的 InternalsVisibleTo 关系 这个 GivesAccessTo 方法可以获取到当前的程序集对给定的程序集参数是否为 在 Lib2 里面添加一个 AssemblyInfo.cs 文件,在 AssemblyInfo.cs 文件里面记录 InternalsVisibleTo 给到 App 程序集,如以下代码。 没有对 App 项目 internal 可见,而 Lib2 对 App 项目 internal 可见 using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo

    67620编辑于 2023-06-23
  • 来自专栏林德熙的博客

    dotnet 新 SDK Style 项目格式如何使用 InternalsVisibleToAttribute 功能

    "/> <InternalsVisibleTo Include="HikallyijuDallcurjemdehowai"/> </ItemGroup> 那么这个 NuGet 库的原理是什么 ->Count())' > 0"> <AssemblyAttribute Include="System.Runtime.CompilerServices.<em>InternalsVisibleTo</em> "> <_Parameter1>%(InternalsVisibleTo.Identity)</_Parameter1> </AssemblyAttribute> < /ItemGroup> </Target> 也就是添加一个 AddInternalsVisibleTo 的 Target 在开始构建之前触发 内容就是读取 InternalsVisibleTo 项的内容 ,加入到 AssemblyAttribute 这里,而在上文小伙伴了解到放在 AssemblyAttribute 的内容将会被输出 用这个方法就可以做到写 InternalsVisibleTo 就可以自动创建

    1K20发布于 2020-08-24
  • 来自专栏林德熙的博客

    dotnet 强签名下使用 InternalsVisibleToAttribute 给程序集加上友元

    可以访问到 A 程序集里面所有的 internal 成员,那么我可以在 A 程序集里面通过 InternalsVisibleToAttribute 加上友元程序集,如下面代码 [assembly: InternalsVisibleTo 强名称签名的程序集必须在其 InternalsVisibleTo 声明中指定一个公钥。 添加了强签名的程序集用途是说明这个程序集是谁发布的,而没有任何保密等作用。 如上面例子的 B 程序集,也使用一个密钥文件进行签名,签名之后,还需要将密钥文件的公钥写到 InternalsVisibleTo 的参数里面,格式如下 [assembly: InternalsVisibleTo dc97d4cab25f70524ca74912121a1f2233c96cd501b5efc717d933bf15f23d256aa7cf37b9ce81 4fd2def1 公钥标记为 d9b785a303650e22 在代码里面将公钥内容替换到上面的 ** 内容,大概如下 [assembly: InternalsVisibleTo

    97220发布于 2020-12-22
  • 来自专栏大内老A

    当InternalsVisibleToAttribute特性遭遇"强签名"

    1: [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Test)] 二、如果对Lib添加强签名呢? Strong-name signed assemblies must specify a public key in their InternalsVisibleTo declarations.” ? 1: [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Test, Version=1.0.0.0, Culture=neutral InternalsVisibleTo declarations cannot have a version, culture, public key token, or processor architecture 8dba6a4f4e33b7dc 我们只需要将该公钥指定到InternalsVisibleToAttribute特性中即可: 1: [assembly: System.Runtime.CompilerServices.InternalsVisibleTo

    850110发布于 2018-01-16
  • 来自专栏WPF

    在其他程序集访问internal类

    InternalsVisibleToAttribute特性  首先,我们在项目FooALibray新增->程序集信息文件,那么就获得一个初始的AssemblyInfo类了,然后我们只需新增以下代码: [assembly: InternalsVisibleTo

    1.8K20发布于 2021-05-21
  • 来自专栏孙小北的成长笔记

    dynamic遇到了匿名类RuntimeBinderException:“object”未包含“xxx”的定义

    项目B命名空间 Test.B 在Test.B 中通过dynamic关键字调用Test.A中匿名类型时报上述错误 解决办法: 在项目A的AssemblyInfo.cs中加上: [assembly: InternalsVisibleTo

    71110编辑于 2024-01-30
  • 来自专栏黄腾霄的博客

    Moq基础(六)

    因此需要在AssemblyInfo.cs添加 [assembly:InternalsVisibleTo("DynamicProxyGenAssembly2")] [assembly:InternalsVisibleTo

    1.4K30发布于 2020-06-10
  • 来自专栏C#

    DotNet友元程序集解析

    三.友元程序集解析    扯了半天,终于到讲解“友元程序集”这一个概念,“友元程序集”在.NET2中提出,使用InternalsVisibleToAttribute来实现这一特性,InternalsVisibleTo 友元程序集实例介绍: //AssemblySource.DLL [assembly: InternalsVisibleTo(DotNetShare)] public class AssemblySource

    1.1K70发布于 2018-01-04
  • 来自专栏newbe36524的技术专栏

    .NET 代码保护实战:从混淆到虚拟机保护

    privatestringDecryptToken(stringencrypted){//解密逻辑}}有时需要让测试程序集访问内部成员,同时保持生产代码的安全性:展开代码语言:C#AI代码解释//AssemblyInfo.cs[assembly:InternalsVisibleTo ("HagiCode.Application.Tests")][assembly:InternalsVisibleTo("DynamicProxyGenAssembly2")]//forMoq这样测试起来方便多了

    17010编辑于 2026-03-18
  • 来自专栏葡萄城控件技术团队

    如何使用MOQ进行单元测试

    准备工作 如果你需要测试项目中的Internal成员,你需要在AssemblyInfo.cs中添加如下的Attribute: #if DEBUG [assembly: InternalsVisibleTo

    4.3K60发布于 2018-01-10
  • 来自专栏walterlv - 吕毅的博客

    详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式

    DoNotWrapExceptions 你可能会有的疑问 如果 A 程序集对 B 程序集内部可见(InternalsVisibleTo("B")),那么 B 在反射查找 A 的时候,internal 成员的查找应该使用

    2.7K10发布于 2020-02-10
  • 来自专栏张志敏的技术专栏

    给 c# 程序员的十个重要提示

    //Make the internals visible to the test assembly [assembly: InternalsVisibleTo("MyTestAssembly")] 2:

    1.5K40发布于 2020-08-10
  • 来自专栏林德熙的博客

    WPF 最简方法使用自己定制的 WPF 框架

    这样的调试效率太低了 实际上本文提供的方法是给 WPF 每个项目都加上了一句 InternalsVisibleTo 到 dotnetCampus.WPF 程序集而已 使用这个方法也是有缺点的,如需要额外添加整个程序集以及在

    91020发布于 2020-12-29
  • 来自专栏walterlv - 吕毅的博客

    .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)

    ▲ 没用到的类将消失 特别注意,如果标记了 InternalsVisibleTo,尤其注意不要不小心被误删了。 需要 特别小心如果有 InternalsVisibleTo 或者依据名称的反射调用,这种混淆下极有可能挂掉!!!请充分测试你的软件,切记!!! 尽量选择 任意选择类/方法名和字段名的级别,只要能编译通过就行(因为无论选哪个,对程序的影响都一样,逆向的难度差异也较小) 名称混淆不影响程序执行性能,所以只要能打开,就尽量打开 如果有 InternalsVisibleTo

    3.2K10发布于 2018-09-18
  • 来自专栏林德熙的博客

    WPF 框架开发 加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员

    dotnet 强签名下使用 InternalsVisibleToAttribute 给程序集加上友元 拿到签名,然后拼接 InternalsVisibleToAttribute 的内容 [assembly:InternalsVisibleTo

    75820发布于 2020-12-29
  • 来自专栏草根专栏

    使用xUnit为.net core程序进行单元测试(上)

    代码如下: [assembly: InternalsVisibleTo("Hospital.Tests")] 这表示Hospital.Tests这个测试项目可以访问该项目生产代码(production

    3.3K90发布于 2018-01-14
  • 来自专栏草根专栏

    使用xUnit为.net core程序进行单元测试(1)

    代码如下: [assembly: InternalsVisibleTo("Hospital.Tests")] 这表示Hospital.Tests这个测试项目可以访问该项目生产代码(production

    2.3K50发布于 2018-03-01
  • 来自专栏施炯的IoT开发专栏

    《101 Windows Phone 7 Apps》读书笔记-BABY MILESTONES

    为了使得我们标记的方法在合适的时间调用,它们必须是public类型的(或者包含一个合适的InternalsVisibleTo属性),并且具有一个StreamingContext参数。

    1.1K100发布于 2018-01-10
  • 来自专栏一起玩转.NET

    【5min+】为你的.NET应用进行一次全方位体检

    说几个大家可能在单元测试过程中可能涉及到的几个小点: 有时候您会测试一个internal级别的类,但是当测试项目引用之后是没有办法找到该类的,您可以通过将程序集标记为对测试项目可见来进行测试: [assembly: InternalsVisibleTo

    89830发布于 2020-04-27
领券