gpt4 book ai didi

.net - 是否可以封装多个 .net 程序集以提供单个公共(public)接口(interface)?

转载 作者:行者123 更新时间:2023-12-04 18:20:21 25 4
gpt4 key购买 nike

我在 .NET 中创建了一个组件,旨在用于其他公司或开发团队的多个 .NET 解决方案。

我的组件由多个 DLL 组成。大致来说,它有:

  • 一个 核心 可以进行大量操作的 DLL,以及
  • 一个 门面 DLL 仅提供这些操作的一小部分,因此可以为不同的客户或集成定制组件。

  • 问题是我不希望任何人能够访问 核心 方法,但仅限 门面那些。这样我可以确保没有人试图通过调用 来作弊。核心 直接方法,而不是 门面方法。

    有可能实现吗?为了实现这种封装,是否有任何模式或良好实践?

    最佳答案

    制作 的访问修饰符核心 类型 internal并使用 InternalsVisibleToAttribute 分享internal跨您自己的程序集的实现。此属性将允许您的 门面用于访问 的 DLL核心 内部结构。

    然而,这不会阻止有决心的人使用反射。它的作用是让访问变得不简单,这通常足以将大多数人引导到公开暴露的类型。

    此外,在发布程序集时缺乏关于内部内容的文档会劝阻人们 - 再加上公共(public)类型的非常好的文档。

    谨慎的做法是始终查看人们如何尝试使用您的程序集。 中可能有类型核心 人们非常喜欢它们,因为它们很有用或有你没有考虑过的用途 - 准备通过 公开这些门面以满足消费者的需求。

    关于.net - 是否可以封装多个 .net 程序集以提供单个公共(public)接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812792/

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