草庐IT

指定版本

全部标签

c# - 在 Windows Server 2008 或更高版本上检测提升的权限

我有一个在WindowsServer平台(2008或更高版本)上运行的C#、.Net4.6.1Windows窗体应用程序,需要“以管理员身份运行”。需要提升权限,因为应用程序更改了各种文件夹的用户访问权限(如果重要,则在IIS默认网站根目录下)。我无法检测应用程序是否已“以管理员身份运行”。如果我正常启动应用程序(即不是作为管理员)以下代码varisAdmin=WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid);返回true,但更改目录上某些用户访问权限的代码

c# - MSBuild 正在用旧版本替换 Newtonsoft.Json.dll

我正在使用TeamCity中的MSBuild运行程序来构建ASP.netWebAPI并运行单元测试。一切正常,直到我升级到“MicrosoftBuildTools201715.7.2”。msbuild突然从“C:\ProgramFiles(x86)\ISS\MicrosoftWebDeployV3”或“C:\ProgramFiles\ISS”复制旧版本的Newtonsoft.Json.dll(版本6.0.4.17603)\MicrosoftWebDeployV3”在构建解决方案时添加到输出文件夹。所有项目都使用NuGet引用9.0.1版本。在构建运行时监视输出文件夹,我可以看到.dll

c# - 使用 x :Static 指定时忽略 DataTemplate 键

我遇到了DataTemplate键的奇怪行为:当通过x:Type指定DataType,并且通过x:Static引用指定x:Key时,忽略x:Key。我编写了示例应用程序来说明它。XAML资源:C#:publicclassTestDto{}publicstaticclassDataKeys{publicstaticstringTestDtoKey="TestKey";publicstaticstringTestDtoKey2="TestKey2";publicstaticstringTestDtoKey4="TestKey4";}启动应用程序,在调试器中查看this.Resources.

c# - 如何在执行 Web 请求时指定仅连接超时?

我目前正在使用使用HttpClient类发出HTTP请求的代码。尽管您可以为请求指定超时,但该值适用于整个请求(包括解析主机名、建立连接、发送请求和接收响应)。我需要一种方法让请求在无法解析名称或建立连接时快速失败,但有时我也需要接收大量数据,因此不能仅仅减少超时。有没有办法使用内置(BCL)类或替代HTTP客户端堆栈来实现此目的?我简要地查看了RestSharp和ServiceStack,但它们似乎都没有为连接部分提供超时(但如果我错了请纠正我)。 最佳答案 如果连接花费太多时间,您可以使用Timer中止请求。时间到时添加事件。你

c# - 调试和发布版本中的静态字段初始化

我发现静态字段初始化的行为可能不同。对于以下代码,publicclassClass1{publicstaticvoidMain(){Console.WriteLine("Main");Test();Console.ReadLine();}publicstaticvoidTest(){Console.WriteLine("Test");Singleton.Instance.DoSomething();}}publicclassSingleton{privatestaticSingletonsInstance=newSingleton();protectedSingleton(){Cons

c# - 错误 : Could not load file or assembly 'Microsoft. Practices.ServiceLocation,版本 = 1.0.0.0

我收到这个错误:Couldnotloadfileorassembly'Microsoft.Practices.ServiceLocation,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'oroneofitsdependencies.Thelocatedassembly'smanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)如果我的项目中已有另一个现有版本的Microsoft.Practic

c# - 为 StyleCop 拼写检查指定 CustomDictionary 文件的路径

最近版本的StyleCop中添加了对评论的拼写检查。看来我可以将现有的CustomDictionary文件(我为FxCop创建的)与StyleCop重用。SA1650规则documentation并没有说这是可能的。但是在releasenotes对于版本4.7.39我看到了Addsupportforspecifyingdictionaryfoldersinthesettings.StyleCopfile.如何配置StyleCop以在我的解决方案的根文件夹中搜索此文件? 最佳答案 在我的例子中,当我在.csproj文件旁边的Setti

c# - 无需继续指定默认 namespace 即可解析 XDocument

我有一些XML数据(类似于下面的示例),我想读取代码中的值。为什么我必须指定默认命名空间才能访问每个元素?我原以为所有元素都使用默认命名空间。是否有更合乎逻辑的方法来实现我的目标?示例XML:000001732009-10-28T16:50:01BX4f+RmNCVCsT5gOK读取xml元素的代码:XDocumentxDoc=XDocument.Load(FileInPath);XNamespacens="http://www.secretsonline.gov.uk/secrets";XElementMessageCheck=xDoc.Element(ns+"MessageHead

c# - xml序列化同时指定xmlelement和xmlattribute

给定:-[XmlRoot("Book")]publicclassBook{[XmlAttribute]publicstringTitle;[XmlElement]publicstringPublisher;[XmlElement]publicstringPublisherReference;}当序列化为XML时会给出SomePublisherXYZ123我怎样才能将PublisherReference作为Publisher的属性-例如SomePublisher 最佳答案 [XmlRoot("Book")]publicclassBoo

c# - 在 C# 中,为什么接口(interface)实现必须显式实现方法的另一个版本?

举个例子:publicinterfaceIFoo{IFooBar();}publicclassFoo:IFoo{publicFooBar(){//...}IFooIFoo.Bar(){returnBar();}//Whyisthisnecessary?}为什么IFooBar()的隐式实现是必要的,即使Foo无需转换就可以转换为IFoo? 最佳答案 在这种情况下需要它,因为C#不支持接口(interface)的返回类型协变,所以你的函数publicFooBar(){//...}不满足IFoo接口(interface),因为Bar方法的