Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在VisualStudio中创建.NET库_C#_.net_Visual Studio - Fatal编程技术网

C# 在VisualStudio中创建.NET库

C# 在VisualStudio中创建.NET库,c#,.net,visual-studio,C#,.net,Visual Studio,我正在Visual Studio中构建一个库,我已决定将名称空间结构设置为CompanyName.Type.Action,例如MyCompany.Common.DataFile 在VisualStudio中,我通过创建一个名为MyCompany.Common的新解决方案,然后将类数据文件添加到MyCompany.Common项目中来实现这一点 首先,这导致解决方案和项目同名,我认为这不是最佳实践 第二,我会在MyCompany.Common项目中得到很多文件,而不是在MyCompany.Comm

我正在Visual Studio中构建一个库,我已决定将名称空间结构设置为CompanyName.Type.Action,例如MyCompany.Common.DataFile

在VisualStudio中,我通过创建一个名为MyCompany.Common的新解决方案,然后将类数据文件添加到MyCompany.Common项目中来实现这一点

首先,这导致解决方案和项目同名,我认为这不是最佳实践

第二,我会在MyCompany.Common项目中得到很多文件,而不是在MyCompany.Common解决方案中得到很多项目

我可以将解决方案重命名为MyCompany,然后创建一个名为Common的项目,但在单个项目中仍然会有很多与Common相关的文件

这是做图书馆的最好方法吗?
你们怎么做?

这取决于解决方案中是否还有其他项目。解决方案名称其实并不重要——大多数情况下,解决方案只是项目的容器。您可以很容易地在多个解决方案中使用同一个项目


您的项目绝对应该是MyCompany.Common,而不仅仅是Common,IMO。不要忘记生成的程序集名称和默认名称空间默认与项目名称相同。

除非您需要在多个项目中拆分代码,否则我建议您避免这样做。原因是,编译一个包含许多项目的解决方案比编译一个包含几个项目的解决方案花费的时间要长得多,而且拥有大量dll文件可能会让使用您的库的人感到困惑

现在,对于您正在做的事情,我建议您命名解决方案,以便了解其中的内容。对于每个项目,您可以根据需要将默认名称空间设置为任何名称空间,因此即使您的解决方案名为MyCompanyLibrary,您的项目也有一个默认名称空间,如MyCompany.Common。

此外,您可以覆盖项目中任何文件的建议名称空间,因此如果不想,您不必遵循建议的结构。只要你的结构清晰易懂,你就应该很好

只是为了补充Jon的答案,您仍然可以使用MyCompany.Common名称空间进行多个项目。一个合理的用法将是一个项目&名称空间,例如MyCompany.Common.SomeSpecificStuff,其中您希望单独打包特定于公共的内容(但可能很少使用或平台/DB/UI特定)。在项目中使用目录似乎是一种很好的做法,因为名称空间继承了目录名。