Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
2e96a57e
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2e96a57e
编写于
9月 21, 2015
作者:
H
Heejae Chang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
guard us from crashing when VS ran under environment where SHA256 is not allowed
上级
950f43b4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
2 deletion
+19
-2
src/Features/Core/Portable/Diagnostics/Log/DiagnosticAnalyzerLogger.cs
...Core/Portable/Diagnostics/Log/DiagnosticAnalyzerLogger.cs
+19
-2
未找到文件。
src/Features/Core/Portable/Diagnostics/Log/DiagnosticAnalyzerLogger.cs
浏览文件 @
2e96a57e
...
...
@@ -21,12 +21,16 @@ internal class DiagnosticAnalyzerLogger
private
const
string
AnalyzerException
=
"Analyzer.Exception"
;
private
const
string
AnalyzerExceptionHashCode
=
"Analyzer.ExceptionHashCode"
;
private
static
readonly
SHA256CryptoServiceProvider
s_sha256CryptoServiceProvider
=
new
SHA256CryptoServiceProvider
();
private
static
readonly
SHA256CryptoServiceProvider
s_sha256CryptoServiceProvider
=
GetSha256CryptoServiceProvider
();
private
static
readonly
ConditionalWeakTable
<
DiagnosticAnalyzer
,
StrongBox
<
bool
>>
s_telemetryCache
=
new
ConditionalWeakTable
<
DiagnosticAnalyzer
,
StrongBox
<
bool
>>();
private
static
string
ComputeSha256Hash
(
string
name
)
{
if
(
s_sha256CryptoServiceProvider
==
null
)
{
return
"Hash Provider Not Available"
;
}
byte
[]
hash
=
s_sha256CryptoServiceProvider
.
ComputeHash
(
Encoding
.
UTF8
.
GetBytes
(
name
));
return
Convert
.
ToBase64String
(
hash
);
}
...
...
@@ -170,5 +174,18 @@ private static bool CheckTelemetry(DiagnosticAnalyzerService service, Diagnostic
DiagnosticDescriptor
diagnostic
=
diagDescriptors
.
Length
>
0
?
diagDescriptors
[
0
]
:
null
;
return
diagnostic
==
null
?
false
:
diagnostic
.
CustomTags
.
Any
(
t
=>
t
==
WellKnownDiagnosticTags
.
Telemetry
);
}
private
static
SHA256CryptoServiceProvider
GetSha256CryptoServiceProvider
()
{
try
{
// not all environment allows SHA256 encryption
return
new
SHA256CryptoServiceProvider
();
}
catch
{
return
null
;
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录