草庐IT

安全开发

全部标签

c# - 何时使用 Powershell 与 C# 进行开发?

我刚刚开始使用PowerShell,我的一位系统管理员告诉我,Powershell在系统管理方面的功能与C#一样多,甚至更多。请原谅这个问题的无知,但我什么时候会在C#上使用Powershell? 最佳答案 1)PowerShell适用于定义明确的相对较小的任务,尤其是当您直接在命令行中编写代码时的短暂的一日任务和交互式任务。如果一项任务只需要几行PowerShell代码(您知道这一点是因为您对PowerShell足够了解!),那么启动一个完整的C#项目通常是多余的。2)C#更适合大型项目或性能至关重要的项目。对于可能需要调试和故障

C# RabbitMQ 客户端线程安全

ConnectionFactoryfactory=newConnectionFactory{HostName="localhost"};using(IConnectionconnection=factory.CreateConnection())using(IModelchannel=connection.CreateModel()){channel.QueueDeclare("hello",false,false,false,null);for(inti=0;i我有上面的代码,我对线程安全性很好奇。我不确定,但我想ConnectionFactory是线程安全的。但是IConnecti

c# - List<T>.Contains() 是线程安全调用 - C#

我的理解是,如果您在C#中使用泛型列表(List),那么它可以支持多个并发读取器,但只能支持一个写入器。当您将编写器引入混合时,您还必须提供同步结构以使操作线程安全。List.Contains是否被视为读取操作?换句话说,如果我调用这个方法,我是否需要担心写入者可能同时写入这个列表? 最佳答案 是的,你应该。基本上,如果列表可能同时用于写入,我会同步任何操作。一般来说,我发现集合分为两类-一种是创建、初始化然后再也不会更改(线程安全),另一种是随着时间的推移而发生变化(非线程安全,所有访问都锁定)。

c# - Delphi 开发人员转向 C#

我已经有一段时间是Delphiholic了,最近我也在考虑学习一些C#,但是我有点“害怕未知”,我已经做了一些简单的应用程序作为测试驱动C#,我不得不承认我喜欢它,但是我不太喜欢这个IDE...这里所说的问题,如果其他走这条路的人会回答,我将不胜感激:作为一名Delphi开发人员,Delphi语言的“主要基本”变化是什么(基本是指基本——实用函数、流等),我习惯于将“系统、类、窗口”添加到不使用“使用System.XXX.YYY.ZZZ”,我试图在我的脑海中实现从Delphi到C#的部分平等,直到我看到Delphi与C#携手并进的地方等等......我希望问题很清楚,如果没有,请毫不犹

c# - 将开发快捷方式放在#if DEBUG block 中是个坏主意吗?

在我们代码的一些地方,我们使用#ifDEBUGblock来简化开发。像这样的东西:#ifDEBUGserverIP=localhost;#elseserverIP=GetSetting()#endif或privateboolisLicensed()#ifDEBUGreturntrue;#endifreturnCheckSetting()还有一些地方我们会像这样进行外观更改:#ifDEBUGbackground=humorousImage.jpg#elsebackground=standardColor#endif依赖#ifdebug来简化开发是否危险?如果是,#ifdebug的有效用法

C#:这个字段赋值安全吗?

在这段代码中:classClassWithConstants{privateconststringConstantA="Something";privateconststringConstantB=ConstantA+"Else";...}是否存在以ConstantB=="Else"结束的风险?还是线性分配? 最佳答案 你总会得到“SomethingElse”。这是因为ConstantB依赖于ConstantA。你甚至可以换行,你会得到相同的结果。编译器知道ConstantB依赖于ConstantA并会相应地处理它,即使您将它写在分

c# - 我需要在 C# .Net 中创建一个线程安全的静态变量

好吧,它比问题复杂一点。classA{staticintneedsToBeThreadSafe=0;publicstaticvoidM1(){needsToBeThreadSafe=RandomNumber();}publicstaticvoidM2(){print(needsToBeThreadSafe);}}现在我要求在M1()和M2()之间调用“needsToBeThreadSafe”保持线程安全。 最佳答案 怎么样:publicstaticvoidM1(){Interlocked.Exchange(refneedsToBeT

c# - 异步世界中的故障安全处置

在同步世界中,C#使一次性管理所有事物变得非常容易:using(IDisposablesomeDisposable=bla.bla()){//doourbidding}//don'tworrytoomuchaboutit但是,当我们使用异步时,我们不再享受usingblock带来的便利。我遇到的最好的策略之一是CCRiterator这允许我们使用异步代码“就好像它是同步的”。这意味着我们可以将usingblock保留在迭代器处理程序中,而不会陷入何时处理和捕获所有需要处理的情况的复杂决定中。但是,在许多情况下,调用CCR似乎有点矫枉过正,老实说,虽然我对CCR很满意,但对于外行来说,它

c# - 如何在我的开发环境中从 Windows 7 x64 上的 C# 连接到 Oracle 数据库

我很难连接到Windows7x64上的Oracle数据库我的环境如下:Windows7x64VisualStudio2012Oracle10g(带32位客户端)WinForms我已将所有项目的objective-cPU明确设为x86CPU(与Any或x86相对)我正在使用DbProviderFactory.GetFactory进行连接我的app.config中的ConnectionString条目如下所示:(我试过各种样式的连接字符串都没有成功)当我编译应用程序时,如果我从Debug文件夹运行可执行文件,它能够正常连接。但是,如果我尝试在VisualStudio中运行它,当我打开连接时

c# - .NET Framework 4.x 中的插件系统安全性(无 CAS)

我想实现的是一个具有以下功能的插件系统:从我(开发人员)可能不信任但安装插件的最终用户信任的来源加载外部插件在特定范围内授予每个插件权限;例如一个插件可能有权从特定位置读取文件,而其他插件可能被允许连接到特定网站位置每个插件权限的特例:与另一个对象交互,很可能作为接口(interface)实例提供,而不访问其任何非公共(public)成员(甚至不使用偷偷摸摸的反射技术)在插件代码造成任何危害之前阻止最终用户不同意的操作,例如访问非公共(public)成员或在文件系统上操作在我的搜索过程中,我发现大多数涉及代码访问安全的SO解决方案,据我所知,这些解决方案在.NET4.x中已经过时。我还