Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
49cc8841
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,发现更多精彩内容 >>
提交
49cc8841
编写于
10月 15, 2016
作者:
H
Heejae Chang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use new language property of compilation/parseoption to find out which type it is
上级
22fc0144
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
3 addition
and
59 deletion
+3
-59
src/Workspaces/CSharp/Portable/Execution/CSharpOptionsSerializationService.cs
...p/Portable/Execution/CSharpOptionsSerializationService.cs
+0
-5
src/Workspaces/Core/Portable/Execution/AbstractOptionsSerializationService.cs
...Portable/Execution/AbstractOptionsSerializationService.cs
+0
-2
src/Workspaces/Core/Portable/Execution/IOptionsSerializationService.cs
...s/Core/Portable/Execution/IOptionsSerializationService.cs
+0
-2
src/Workspaces/Core/Portable/Execution/Serializer.cs
src/Workspaces/Core/Portable/Execution/Serializer.cs
+0
-43
src/Workspaces/Core/Portable/Execution/Serializer_Asset.cs
src/Workspaces/Core/Portable/Execution/Serializer_Asset.cs
+3
-3
src/Workspaces/VisualBasic/Portable/Execution/VisualBasicOptionsSerializationService.vb
...table/Execution/VisualBasicOptionsSerializationService.vb
+0
-4
未找到文件。
src/Workspaces/CSharp/Portable/Execution/CSharpOptionsSerializationService.cs
浏览文件 @
49cc8841
...
...
@@ -17,11 +17,6 @@ namespace Microsoft.CodeAnalysis.CSharp.Execution
[
ExportLanguageService
(
typeof
(
IOptionsSerializationService
),
LanguageNames
.
CSharp
),
Shared
]
internal
class
CSharpOptionsSerializationService
:
AbstractOptionsSerializationService
{
public
override
bool
CanSerialize
(
object
value
)
{
return
value
is
CSharpCompilationOptions
||
value
is
CSharpParseOptions
;
}
public
override
void
WriteTo
(
CompilationOptions
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
)
{
WriteCompilationOptionsTo
(
options
,
writer
,
cancellationToken
);
...
...
src/Workspaces/Core/Portable/Execution/AbstractOptionsSerializationService.cs
浏览文件 @
49cc8841
...
...
@@ -14,8 +14,6 @@ namespace Microsoft.CodeAnalysis.Execution
{
internal
abstract
class
AbstractOptionsSerializationService
:
IOptionsSerializationService
{
public
abstract
bool
CanSerialize
(
object
value
);
public
abstract
void
WriteTo
(
CompilationOptions
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
public
abstract
void
WriteTo
(
ParseOptions
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
public
abstract
void
WriteTo
(
OptionSet
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
...
...
src/Workspaces/Core/Portable/Execution/IOptionsSerializationService.cs
浏览文件 @
49cc8841
...
...
@@ -12,8 +12,6 @@ namespace Microsoft.CodeAnalysis.Execution
/// </summary>
internal
interface
IOptionsSerializationService
:
ILanguageService
{
bool
CanSerialize
(
object
value
);
void
WriteTo
(
CompilationOptions
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
void
WriteTo
(
ParseOptions
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
void
WriteTo
(
OptionSet
options
,
ObjectWriter
writer
,
CancellationToken
cancellationToken
);
...
...
src/Workspaces/Core/Portable/Execution/Serializer.cs
浏览文件 @
49cc8841
...
...
@@ -190,49 +190,6 @@ public T Deserialize<T>(string kind, ObjectReader reader, CancellationToken canc
}
}
private
string
GetLanguageName
(
object
value
)
{
// for given object, we need to figure out which language the object belong to.
// we can't blindly get language service since that will bring in language specific dlls.
foreach
(
var
languageName
in
_workspaceServices
.
SupportedLanguages
)
{
IOptionsSerializationService
service
;
if
(
_lazyLanguageSerializationService
.
TryGetValue
(
languageName
,
out
service
))
{
if
(
service
.
CanSerialize
(
value
))
{
return
languageName
;
}
continue
;
}
// this should be only reached once per language value actually belong to
var
mefWorkspaceServices
=
_workspaceServices
as
MefWorkspaceServices
;
if
(
mefWorkspaceServices
!=
null
)
{
MefLanguageServices
languageServices
;
if
(!
mefWorkspaceServices
.
TryGetLanguageServices
(
languageName
,
out
languageServices
))
{
// this is a bit fragile since it depends on implementation detail but there is no other way
// to figure out which language a type belong to without loading other languages
//
// if a language's language services is not created yet, then it means that language is not loaded
continue
;
}
}
service
=
GetOptionsSerializationService
(
languageName
);
if
(
service
.
CanSerialize
(
value
))
{
return
languageName
;
}
}
// shouldn't reach here
throw
ExceptionUtilities
.
UnexpectedValue
(
value
);
}
private
IOptionsSerializationService
GetOptionsSerializationService
(
string
languageName
)
{
return
_lazyLanguageSerializationService
.
GetOrAdd
(
languageName
,
n
=>
_workspaceServices
.
GetLanguageServices
(
n
).
GetService
<
IOptionsSerializationService
>());
...
...
src/Workspaces/Core/Portable/Execution/Serializer_Asset.cs
浏览文件 @
49cc8841
...
...
@@ -159,9 +159,9 @@ public void SerializeCompilationOptions(CompilationOptions options, ObjectWriter
{
cancellationToken
.
ThrowIfCancellationRequested
();
// TODO: once compiler team adds ability to serialize compilation options to ObjectWriter directly, we won't need this.
var
language
=
GetLanguageName
(
options
);
var
language
=
options
.
Language
;
// TODO: once compiler team adds ability to serialize compilation options to ObjectWriter directly, we won't need this.
writer
.
WriteString
(
language
);
var
service
=
GetOptionsSerializationService
(
language
);
...
...
@@ -182,7 +182,7 @@ public void SerializeParseOptions(ParseOptions options, ObjectWriter writer, Can
{
cancellationToken
.
ThrowIfCancellationRequested
();
var
language
=
GetLanguageName
(
options
)
;
var
language
=
options
.
Language
;
// TODO: once compiler team adds ability to serialize parse options to ObjectWriter directly, we won't need this.
writer
.
WriteString
(
language
);
...
...
src/Workspaces/VisualBasic/Portable/Execution/VisualBasicOptionsSerializationService.vb
浏览文件 @
49cc8841
...
...
@@ -12,10 +12,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Execution
Friend
Class
VisualBasicOptionsSerializationService
Inherits
AbstractOptionsSerializationService
Public
Overrides
Function
CanSerialize
(
value
As
Object
)
As
Boolean
Return
(
TypeOf
value
Is
VisualBasicCompilationOptions
)
OrElse
(
TypeOf
value
Is
VisualBasicParseOptions
)
End
Function
Public
Overrides
Sub
WriteTo
(
options
As
CompilationOptions
,
writer
As
ObjectWriter
,
cancellationToken
As
CancellationToken
)
WriteCompilationOptionsTo
(
options
,
writer
,
cancellationToken
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录