草庐IT

api安全

全部标签

c# - 静态变量的线程安全初始化

我一直在使用这种模式来初始化我的类中的静态数据。它对我来说看起来是线程安全的,但我知道线程问题有多么微妙。这是代码:publicclassMyClass//badcode,donotuse{staticstring_myResource="";staticvolatilebool_init=false;publicMyClass(){if(_init==true)return;lock(_myResource){if(_init==true)return;Thread.Sleep(3000);//someoperationthattakesalongtime_myResource="H

c# - ASP.NET Web API 和 [Serializable] 类

我有一个标有[Serializable]的类。当我从WebAPI返回它时,字段名称都很奇怪。通常返回的JSON是[{"OrderId":797...使用[Serializable]时返回的JSON[{"k__BackingField":797...我不想将其标记为可序列化以使用BinaryFormatter进行缓存。除了编写自定义序列化程序或制作不可序列化的孪生类并编写猴子代码以在两者之间“转换”之外,还有其他方法吗? 最佳答案 您只需要一行代码就可以让Json.NET再次忽略[Serializable]语义:((DefaultCo

c# - 这个操作线程安全吗?

在以下示例中,当单击“提交”按钮时,静态变量Count的值会递增。但是这个操作线程安全吗?使用Appliation对象是执行此类操作的正确方法吗?这些问题也适用于Web表单应用程序。当我点击“提交”按钮时,计数似乎总是在增加。View(Razor):@{Layout=null;}@ViewBag.BeforeCountController:publicclassHomeController:Controller{publicActionResultIndex(){ViewBag.BeforeCount=StaticVariableTester.Count;StaticVariableT

c# - ASP.NET 如何在 Web API 中读取多部分表单数据?

我像这样将多部分表单数据发送到我的WebAPI:stringexample="mystring";HttpContentstringContent=newStringContent(example);HttpContentfileStreamContent=newStreamContent(stream);using(varclient=newHttpClient()){using(varcontent=newMultipartFormDataContent()){content.Add(stringContent,"example","example");content.Add(fi

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope

c# - 通过 C# 访问 Google 拼写/建议 API

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我想在我正在开发的应用中使用Google的拼写更正/建议功能。我用谷歌搜索了它,但我找到的只是Google取消的SOAPAPI和新弃用的XMLWeb搜索API的示例。我只想能够发送搜索查询并取回建议的更正。我现在可以使用哪个API?你能举例说明它的用法吗?它周围有C#包装器吗?谢谢!编辑:Bing和Yahoo的拼写API的问题在于它们似乎是在对照字典进行检查,因此无法识别某些品牌/产品名称,Google似

c# - 字典的线程安全

如果我有一个DictionarymyDic=newDictionary//Populatedictionary一个线程做myDic[0]=newStreamReader(path);另一个线程做myDic[1]=newStreamReader(otherpath)这个线程安全吗,因为字典中被修改的实际项目与另一个线程上的项目不同,或者我会得到一个InvalidOperationException:Collectionwasmodified 最佳答案 如果您在修改时枚举字典,您只会得到InvalidOperationException

c# - 如何使用 AWS S3 API 以非递归方式浏览目录的内容?

假设我在AmazonS3存储桶中有以下目录和文件(文件以粗体显示):桶名/桶名/文件夹1/bucketname/folder1/foobar.txt桶名/文件夹1/子文件夹1/bucketname/folder1/subfolder1/hello.txt桶名/文件夹1/子文件夹2/bucketname/folder1/subfolder2/world.txtbucketname/folder1/subfolder2/subsubfolder1/bucketname/folder1/subfolder2/subsubfolder1/file.txt如何使用.NETAWSS3API列出给定

c# - C# 中的空合并运算符 (??) 是线程安全的吗?

以下代码中是否存在可能导致NullReferenceException的竞争条件?--或--Callback变量是否可以在null合并运算符检查null值之后但在调用函数之前设置为null?classMyClass{publicActionCallback{get;set;}publicvoidDoCallback(){(Callback??newAction(()=>{}))();}}编辑这是出于好奇而提出的问题。我通常不会这样编码。我不担心Callback变量变得陈旧。我担心DoCallback会抛出Exception。编辑#2这是我的类(class):classMyClass{A

c# - 使用 ASP.NET Web API 自定义路由

假设我有一个嵌套的一对多类型的层次结构数据库,如下所示:一个地区有很多国家;每个国家都有很多城市;城市必须属于一个且只有一个国家。将此信息抽象到RDBMS中是一项微不足道的练习,但(在我看来)返回给定区域ID的国家/地区列表的最明智的REST端点如下所示:HTTPGEThttp://localhost/Region/3/Countries默认情况下,.NETWebAPI的路由最多是http://localhost/Countries/Region/3或http://localhost/Region/Countries/3。是否有我应该遵循的合理命名约定,或者路由是否足够可自定义以允许U