我有一个Visual Studio解决方案.目前,它是一个空的解决方案(=没有项目),我添加了一些解决方案文件夹.
解决方案文件夹似乎只是"虚拟文件夹",因为它们实际上并不是在文件系统中创建的,而解决方案文件夹中的文件只是与.sln文件位于同一文件夹中.
是否有一个我忽略的设置告诉Visual Studio将解决方案文件夹视为"真正的"文件夹,即在文件系统中创建它们并将文件移动到其中一个文件夹中时将文件移入其中?
编辑:谢谢.要为VS2010提出建议然后:)
这可能与Passog ILogger或ILoggerFactory与AspNet Core中的构造函数有些关联?但是,这特别是关于库设计,而不是关于使用这些库的实际应用程序如何实现其日志记录.
我写一个.NET 2.0标准库将通过的NuGet安装,并允许使用图书馆的人得到一些调试信息,我根据Microsoft.Extensions.Logging.Abstractions允许标准化的记录器被注入.
但是,我看到了多个接口,Web上的示例代码有时会使用ILoggerFactory并在类的ctor中创建一个记录器.还有ILoggerProvider看起来像Factory的只读版本,但实现可能会也可能不会实现两个接口,所以我必须选择.(工厂似乎比提供商更常见).
我见过的一些代码使用了非泛型ILogger接口,甚至可能共享同一个记录器的一个实例,有些代码接受ILogger<T>他们的ctor并期望DI容器支持开放泛型类型或显式注册ILogger<T>我的库中的每个变体使用.
现在,我确实认为这ILogger<T>是正确的方法,也许是一个不接受该论证而只是通过Null Logger的ctor.这样,如果不需要记录,则不使用任何记录.然而,一些DI容器选择了最大的ctor,因此无论如何都会失败.
我很好奇我应该在这里做什么来为用户创造最少的头痛,同时如果需要仍然允许适当的日志记录支持.
有没有办法在Visual Studio 2008或2010中拥有一个空项目?我不是指一个空的解决方案,我的意思是解决方案中的空项目.基本上我有一个包含多个项目的解决方案,我想添加一个项目来跟踪一些静态文件,这些文件是解决方案的一部分,但不包含任何特定项目.将它们添加为解决方案文件不起作用,因为解决方案文件夹未映射到文件系统文件夹,我想从Visual Studio管理层次结构.
目前我创建一个空的Visual C#项目,但我只是想知道是否有一个"更空"的项目.
我最近决定我必须最终学习C/C++,有一件事我不太了解指针,或者更确切地说,他们的定义.
这些例子怎么样:
int* test;int *test;int * test;int* test,test2;int *test,test2;int * test,test2;现在,根据我的理解,前三个案例都是相同的:测试不是一个int,而是一个指针.
第二组示例有点棘手.在case 4中,test和test2都是指向int的指针,而在case 5中,只有test是指针,而test2是"real"int.案例6怎么样?案例5相同?
可能重复:
使用CLR中的'as'关键字进行转换
这两个演员之间究竟有什么区别?
SomeClass sc = (SomeClass)SomeObject;
SomeClass sc2 = SomeObject as SomeClass;
Run Code Online (Sandbox Code Playgroud)
通常,它们都应该显式转换为指定的类型?
MySQL有这个非常有用但又很合适的REPLACE INTOSQL命令.
这可以在SQL Server 2005中轻松模拟吗?
开始一个新的事务,在做了Select(),然后要么UPDATE或INSERT和COMMIT始终是一个痛苦的一点点,在应用程序中做特别是当,因此能始终保持2个版本的声明.
我想知道是否有一种简单而通用的方法将这样的功能实现到SQL Server 2005中?
我有一个用C#编写的小游戏.它使用数据库作为后端.这是一个交易卡游戏,我想将卡的功能实现为脚本.
我的意思是我基本上有一个接口,ICard卡类实现(public class Card056: ICard)并包含游戏调用的函数.
现在,为了使事物可维护/可修改,我想让每张卡的类作为数据库中的源代码,并在第一次使用时实际编译它.因此,当我必须添加/更换卡时,我只需将其添加到数据库并告诉我的应用程序刷新,而无需任何组件部署(特别是因为我们将讨论每个卡的1个组件,这意味着数百个组件) .
那可能吗?从源文件注册一个类,然后实例化它,等等.
ICard Cards[current] = new MyGame.CardLibrary.Card056();
Cards[current].OnEnterPlay(ref currentGameState);
Run Code Online (Sandbox Code Playgroud)
如果可以用任何.NET语言编写脚本,那么语言就是C#但是额外的奖励.
我不认为这是特定于语言或框架,但我使用xUnit.net和C#.
我有一个函数返回一定范围内的随机日期.我传递了一个日期,返回日期总是在给定日期之前1到40年的范围内.
现在我只是想知道是否有一种很好的方法来进行单元测试.最好的方法似乎是创建一个循环并让函数运行100次并断言这100个结果中的每一个都在所需的范围内,这是我目前的方法.
我也意识到,除非我能够控制我的Random发生器,否则将没有一个完美的解决方案(毕竟,结果是随机的),但我想知道当你必须测试返回随机结果的功能时你采取了什么方法一定的范围?
我不时看到的一个术语是"Cyclomatic Complexity".在这里,我看到了一些关于"如何计算语言X的CC"或"如何使用最小CC量来做Y"的问题,但我不确定我是否真的理解它是什么.
在NDepend网站上,我看到了一个解释基本上是"方法中的决策数量.每个if,for,&&等等都给CC增加+1"得分.)真的是吗?如果是,为什么是这很糟糕?我可以看到,人们可能希望保持if语句的数量相当低,以保持代码易于理解,但这真的是它的一切吗?
还是有一些更深层的概念呢?
有没有办法在PC上为SVN存储库或SVN客户端设置Ignores的全局列表?
我使用像Tortoise/Ankh/VisualSVN这样的工具的唯一原因是因为我想只检查我需要的文件而没有所有bin/obj/Resharper的东西.
我被宠坏.gitignore而.hgignore我只是复制到存储库中,然后使用git commit -a而不必关心垃圾检查.
我知道我可以手动设置它,但这样做很乏味,我认为它必须应用于每个创建的新文件夹.
在Windows下使用SVN.
.net ×4
c# ×4
.net-core ×1
architecture ×1
c ×1
c++ ×1
declaration ×1
logging ×1
mysql ×1
pointers ×1
scripting ×1
sql-server ×1
svn ×1
svnignore ×1
unit-testing ×1
xunit.net ×1