加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Assembly …内部和外部命名空间

发布时间:2020-12-15 07:51:35 所属栏目:百科 来源:网络整理
导读:这里有个问题.我有一个程序集被一些开发人员重用,它包含各种功能,但在技术上分为各种名称空间,代表逻辑功能块. 现在,它提供尽可能少的公共命名空间.基本上,用户不应该知道(并且当前不知道)他们尝试使用的类正在使用哪个内部结构. 假设你有这个: NS1 NS11 11
这里有个问题.我有一个程序集被一些开发人员重用,它包含各种功能,但在技术上分为各种名称空间,代表逻辑功能块.

现在,它提供尽可能少的公共命名空间.基本上,用户不应该知道(并且当前不知道)他们尝试使用的类正在使用哪个内部结构.

假设你有这个:

> NS1

> NS11
> 111级
> 112级
> NS扩展

>扩展类1

> NS12

> NS2

> ……

基本上,用户知道他们使用FrameworkName.NS1来获取有关NS1的一般功能.
现在,在这个简单的例子中,我将一个包含扩展方法的类放在子名空间扩展中,所以基本上,如果最终用户试图使用该程序集,他必须实际知道DLL的内部结构,以便知道扩展存在(这是intellisense不告诉你你知道的那些例子之一).

所以底线…现在我已经有了这个程序集和内部(VS项目)我将项目划分为逻辑文件夹,就像通常那样,但我不让命名空间跟随文件夹.这样,程序集就分成了逻辑块,用户知道这些逻辑块不必知道内部结构,也不需要知道扩展名可能有单独的命名空间等等.

现在,我个人喜欢它,如果我可以让我的代码的命名空间遵循我的文件夹结构,但在编译时以某种方式将这些子命名空间映射到主命名空间.

有可能以某种方式实现这种’重定向’,你会吗?

简单地说,我希望能够在程序集外部公开地将NS1.NS11.Class111作为NS1.Class111处理,同时仍然在程序集内部保持适当的结构.

解决方法

如果您需要通过不同的命名空间提供第三方访问某些内部代码的权限,我会将数据访问抽象为单独的程序集(取决于原始程序集),或使用Web服务提供您的功能子集希望他们访问.

你可能能够对每个类的属性做一些事情,虽然我想它会非常混乱,非常快.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读