gpt4 book ai didi

c# - 包含单个类的程序集是否过大?

转载 作者:太空狗 更新时间:2023-10-30 00:54:55 24 4
gpt4 key购买 nike

我正在编写一个应用程序来托管一系列插件。这些插件一般使用.Common.UI两个库,里面包含了插件需要实现的接口(interface)等。

我现在要为插件添加受许可约束的功能。我修改了我的主机应用程序,使其仅加载定义接口(interface)实例 (ILicenseInfoProvider) 的插件并通过 MEF 将其导出。这点很好。

我们有一个选定的许可代码提供商,他们的许可系统涉及使用库。现在,我不想强制每个插件都通过该系统获得许可,并且,通过扩展,需要引用该系统的程序集。因此,我计划将引用第三方库的代码放入它自己的程序集中(类似于 .Licensing.Vendor)。这样插件可以简单地添加对该程序集的引用,并包含一个看起来有点像这样的类:

[Export(typeof(ILicenseInfoProvider))]
class MyAssemblyLicenseInfoProvider : BaseVendorLicenseInfoProvider
{
public MyAssemblyLicenseInfoProvider() : base("My Assembly's Product Name")
}

我对这个设置相当满意,除了一个小问题——.Licensing.Vendor 程序集将只包含一个类,即 BaseVendorLicenseInfoProvider 与正在使用的特定许可系统有关。

所以,毕竟,我的问题很简单:

将该类放在它自己的程序集中是否显得过分,或者不强制所有插件保存对第三方库的引用的好处是否值得?

最佳答案

目前,该程序集有一个合适的目的 - 一个公开可见的程序集,供第三方提供一种通过许可进行交互的方式。对我来说似乎完全合理:

  • 即使目前只有一个类(class), future 可能还会有更多类(class)
  • 它是公开可见的,因此您只想提供必要的内容
  • 它封装了合理级别的责任,即许可,而不强制特定实现

关于c# - 包含单个类的程序集是否过大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154041/

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