Visual Studio包含一个名为“Extract Interface”的重构函数,它根据类实现生成一个接口。
默认情况下,提取的接口为Internal。问题是,我们最终将所有这些变为Public
。
有人知道默认为什么是内部的吗?更好的是,有没有办法将其自定义为默认为Public
?
答案 0 :(得分:0)
如果您更改接口的Visual Studio模板,它可能会有效(我没有尝试过,但假设这应该有用)。
对于Visual Studio 2008,模板存储在
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates
\CSharp\Code\1033\Interface.zip"
this answer中详细介绍了这一点。
答案 1 :(得分:0)
我没有参考资料,但我默默猜测它为什么是内部的。
假设您有3个项目/程序集:log4net(第三方API),MyApp.Util和MyApp.Web(Web项目)。 Web引用Util,引用log4net。 Web 不引用log4net,你想保持这种方式。
在DAL内部,假设您有一个内部类,并且其中一个成员引用了log4net中定义的类型。它可以是返回类型或方法的参数类型之一,也可以是属性的类型。
假设您从上述类中提取接口,包括引用log4net的上述成员。好吧,如果你将该成员公开(公共接口的一部分)并引用实现它的类型,那么要求 Web项目引用log4net。
通过使界面内部,Web可能继续不知道log4net。