我IEnumberable
收集了一些物品.我用来.Single()
在集合中找到一个特定的对象.
我选择使用Single()
因为只应该有一个特定的项目.但是,如果一个不存在,那么我需要创建它并将其添加到集合中.
我的问题是,Single()
如果没有与谓词匹配的项目或者有多个项目,则会抛出相同的错误.我的想法是将Single()
调用置于try中并捕获异常,添加项目,然后继续.但是,由于两个场景都抛出了InvalidOperationException
,我怎么能判断它是由于没有物品还是多个物品?
我知道我可以使用,First()
但这并没有强制说应该只有一个(没有做额外的工作).
我也可以Count()
在Single()
通话前使用,但这似乎只是破坏了重点Single()
当我构建一个特定的解决方案时,我会在错误列表窗口中随机获得一个"表达式太长或太复杂而无法编译".但是,错误指向的唯一项是特定项目,而不是项目中的文件或特定LOC.
当我遇到这个,我'清洁'然后我重新启动VS,这似乎解决了它.关于是什么导致这个的任何想法?
这个特殊的解决方案有50个项目.
SQL Server 2008
目标:生成用于创建已在DB中的sprocs的脚本.每个文件必须是一个脚本.
我知道我可以直接右键单击数据库和"任务>生成脚本",但这不会编写我想要的模板中的sproc脚本.
我需要在您从对象资源管理器中右键单击sproc并将"脚本存储过程为> DROP和CREATE"时获得的相同模板中编写脚本.
这是通过'Tasks> Generate Scripts'得到类似版本的,但主要区别是'Tasks> Generate Scripts'方法通过dbo.sp_executesql
命令创建脚本,因为你不能嵌套CREATE PROCEDURE
一个IF
块的内部
任务>生成生成此:
USE someDB
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'somesproc') AND type in (N'P', N'PC'))
DROP PROCEDURE someSproc
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'someSproc') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'-- =============================================
CREATE PROCEDURE
AS
BEGIN
END
' …
Run Code Online (Sandbox Code Playgroud) 我搜索了Orchard文档(以及一些google-fu)并且找不到任何解释什么是StereoType的内容以及何时(如果可能)适合创建或扩展StereoType.
有人可以解释一下它们是什么吗?
为什么我的 HttpClient 实例不会使用我提供的客户端证书进行相互身份验证?
我正在使用 HttpClient 进行双向 TLS。作为客户端,我将客户端证书添加到 WebRequestHandler,然后在新的 HttpClient 中使用该处理程序。
我的机器上没有安装证书。我已经成功地将它加载到处理程序中,并且在调试时可以看到它(密码也是正确的)。
我正在针对几个不同的测试域进行测试
两个测试应用程序都显示没有发送证书。
var clientCert = new X509Certificate2("badssl.pem", "badssl.com");
var webHandler = new WebRequestHandler();
webHandler.ClientCertificates.Add(clientCert);
var httpClient = new HttpClient(webHandler);
var result = await (await httpClient.GetAsync(uri)).Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud) 我想要的功能,rmdir /s
但我需要保留指定的目录.rmdir /s
除了指定的目录外,还删除所有文件和子目录.
我也尝试过使用del /s
但是我在指定目录中留下了空文件夹.我也需要删除这些文件夹.
有关如何做到这一点的任何指导?
我们有两种不同的构建配置:Debug和Production.
部分构建包括用于访问第三方站点的证书.在调试中,我们使用暂存证书,在生产中我们使用实时生产证书.
如何确保何时在调试配置中构建解决方案以包含登台证书以及何时在其内置生产中包含生产证书?
编辑
这是Scotty建议的解决方案(这被放入Post-Build事件命令行部分):
IF $(ConfigurationName) == Release copy $(ProjectDir)resources\prod.p12 $(TargetDir)resources
IF $(ConfigurationName) == Debug copy $(ProjectDir)resources\staging.p12 $(TargetDir)resources
Run Code Online (Sandbox Code Playgroud) 使用动态xml解析器,我正在尝试将VS Project文件作为XElement加载.这是项目文件的精简版:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
该文件似乎加载的意义是当我ToString()时,我得到了内容.但是,在尝试挑选元素时,找不到任何东西:
XElement element;
public DynamicXmlParser( string fileName )
{
element = XElement.Load( fileName );
}
public override bool TryGetMember( GetMemberBinder binder, out object result )
{
result = null;
if ( element == null ) return false;
XElement subElement = element.Element( binder.Name );
if ( subElement == null ) return false;
result = new DynamicXmlParser( subElement );
return true;
}
Run Code Online (Sandbox Code Playgroud)
subElement始终为null.
binder.Name
是 ItemGroup
dynamic xmlDoc …
Run Code Online (Sandbox Code Playgroud) c# xml dynamic-language-runtime project-files visual-studio-2012
我有几个进程正在运行,我想通过PowerShell连接到VS调试器.
目前,我可以这样做: Get-Process NServiceBus.Host | Debug-Process
如果只有一个进程,则提示我选择正确的调试器,然后我可以继续.
但是,如果有多个进程,当系统提示我为第二个进程选择调试器时,我无法选择当前运行的Visual Studio实例.
如何使用powershell将多个进程附加到Visual Studio的运行实例以进行调试?
debugging powershell visual-studio visual-studio-2013 powershell-4.0
我无法弄清楚这个剃刀代码有什么问题.
IDE告诉我,我的第一个<ul>
没有匹配的结束标记.它还表示结束标记没有匹配的开始标记.它也不会将多行识别为C#代码,而是将其视为常规文本.
IDE投诉是对违规行的评论.
<div class="list-container">
@{
int i = 0;
<ul> //no matching ending tag
@foreach (var item in Model.Items)
{
if (i % 8 == 0)
{
</ul> //no matching start tag
<ul> //"Text is not allowed between the opening and closing tags for element ul"
} //IDE doesn't recognize this closing brace as code... see it as text
<li>@item.ContentItem.Title.Value</li>
i++; //IDE doesn't recognize this closing brace as code... see it as text
} //IDE doesn't recognize …
Run Code Online (Sandbox Code Playgroud) c# ×5
.net-4.0 ×1
asp.net-mvc ×1
batch-file ×1
build ×1
cmd ×1
debugging ×1
excel ×1
excel-vba ×1
ienumerable ×1
linq ×1
orchardcms ×1
powershell ×1
razor ×1
sql-server ×1
t-sql ×1
vba ×1
xml ×1