Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
be1e4855
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
be1e4855
编写于
2月 01, 2016
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debt - don't use marshalling for descriptors
上级
15d15c1f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
31 addition
and
61 deletion
+31
-61
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
+1
-2
src/vs/editor/common/modes.ts
src/vs/editor/common/modes.ts
+3
-2
src/vs/editor/common/modes/languageExtensionPoint.ts
src/vs/editor/common/modes/languageExtensionPoint.ts
+13
-6
src/vs/editor/common/modes/modesRegistry.ts
src/vs/editor/common/modes/modesRegistry.ts
+8
-8
src/vs/editor/common/services/modeServiceImpl.ts
src/vs/editor/common/services/modeServiceImpl.ts
+5
-3
src/vs/platform/instantiation/common/descriptors.ts
src/vs/platform/instantiation/common/descriptors.ts
+1
-40
未找到文件。
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
浏览文件 @
be1e4855
...
@@ -36,7 +36,6 @@ import {IModelService} from 'vs/editor/common/services/modelService';
...
@@ -36,7 +36,6 @@ import {IModelService} from 'vs/editor/common/services/modelService';
import
colorizer
=
require
(
'
vs/editor/browser/standalone/colorizer
'
);
import
colorizer
=
require
(
'
vs/editor/browser/standalone/colorizer
'
);
import
{
IEditorModesRegistry
,
Extensions
}
from
'
vs/editor/common/modes/modesRegistry
'
;
import
{
IEditorModesRegistry
,
Extensions
}
from
'
vs/editor/common/modes/modesRegistry
'
;
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
createAsyncDescriptor0
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
LanguageExtensions
,
ILanguageExtensionPoint
}
from
'
vs/editor/common/modes/languageExtensionPoint
'
;
import
{
LanguageExtensions
,
ILanguageExtensionPoint
}
from
'
vs/editor/common/modes/languageExtensionPoint
'
;
import
{
AbstractKeybindingService
}
from
'
vs/platform/keybinding/browser/keybindingServiceImpl
'
;
import
{
AbstractKeybindingService
}
from
'
vs/platform/keybinding/browser/keybindingServiceImpl
'
;
import
{
ICodeEditorService
}
from
'
vs/editor/common/services/codeEditorService
'
;
import
{
ICodeEditorService
}
from
'
vs/editor/common/services/codeEditorService
'
;
...
@@ -407,7 +406,7 @@ export function configureMode(modeId: string, options: any): void {
...
@@ -407,7 +406,7 @@ export function configureMode(modeId: string, options: any): void {
export
function
registerWorkerParticipant
(
modeId
:
string
,
moduleName
:
string
,
ctorName
:
string
):
void
{
export
function
registerWorkerParticipant
(
modeId
:
string
,
moduleName
:
string
,
ctorName
:
string
):
void
{
var
modeRegistry
=
<
IEditorModesRegistry
>
Registry
.
as
(
Extensions
.
EditorModes
);
var
modeRegistry
=
<
IEditorModesRegistry
>
Registry
.
as
(
Extensions
.
EditorModes
);
modeRegistry
.
registerWorkerParticipant
(
modeId
,
createAsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
(
moduleName
,
ctorName
)
);
modeRegistry
.
registerWorkerParticipant
(
modeId
,
moduleName
,
ctorName
);
}
}
export
function
getAPI
():
typeof
vscode
{
export
function
getAPI
():
typeof
vscode
{
...
...
src/vs/editor/common/modes.ts
浏览文件 @
be1e4855
...
@@ -14,8 +14,9 @@ import {IDisposable} from 'vs/base/common/lifecycle';
...
@@ -14,8 +14,9 @@ import {IDisposable} from 'vs/base/common/lifecycle';
import
{
AsyncDescriptor0
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
AsyncDescriptor0
}
from
'
vs/platform/instantiation/common/descriptors
'
;
export
interface
IWorkerParticipantDescriptor
{
export
interface
IWorkerParticipantDescriptor
{
modeId
:
string
;
modeId
:
string
;
descriptor
:
AsyncDescriptor0
<
IWorkerParticipant
>
;
moduleId
:
string
;
ctorName
:
string
;
}
}
export
interface
IWorkerParticipant
{
export
interface
IWorkerParticipant
{
...
...
src/vs/editor/common/modes/languageExtensionPoint.ts
浏览文件 @
be1e4855
...
@@ -14,7 +14,6 @@ import {IPluginDescription} from 'vs/platform/plugins/common/plugins';
...
@@ -14,7 +14,6 @@ import {IPluginDescription} from 'vs/platform/plugins/common/plugins';
import
{
PluginsRegistry
,
IExtensionPointUser
,
IMessageCollector
}
from
'
vs/platform/plugins/common/pluginsRegistry
'
;
import
{
PluginsRegistry
,
IExtensionPointUser
,
IMessageCollector
}
from
'
vs/platform/plugins/common/pluginsRegistry
'
;
import
Mime
=
require
(
'
vs/base/common/mime
'
);
import
Mime
=
require
(
'
vs/base/common/mime
'
);
import
Errors
=
require
(
'
vs/base/common/errors
'
);
import
Errors
=
require
(
'
vs/base/common/errors
'
);
import
{
AsyncDescriptor1
,
createAsyncDescriptor1
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
IMode
,
IModeDescriptor
}
from
'
vs/editor/common/modes
'
;
import
{
IMode
,
IModeDescriptor
}
from
'
vs/editor/common/modes
'
;
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
...
@@ -24,7 +23,7 @@ interface ILanguagePointData {
...
@@ -24,7 +23,7 @@ interface ILanguagePointData {
name2LanguageId
:
{
[
name
:
string
]:
string
;
};
name2LanguageId
:
{
[
name
:
string
]:
string
;
};
name2Extensions
:
{
[
name
:
string
]:
string
[];
};
name2Extensions
:
{
[
name
:
string
]:
string
[];
};
id2Name
:
{
[
id
:
string
]:
string
;
};
id2Name
:
{
[
id
:
string
]:
string
;
};
compatModes
:
{
[
id
:
string
]:
AsyncDescriptor1
<
IModeDescriptor
,
IMode
>
;
};
compatModes
:
{
[
id
:
string
]:
ICompatModeDescriptor
;
};
lowerName2Id
:
{
[
name
:
string
]:
string
;
};
lowerName2Id
:
{
[
name
:
string
]:
string
;
};
}
}
...
@@ -177,7 +176,12 @@ export interface ILanguageExtensionPointHandler {
...
@@ -177,7 +176,12 @@ export interface ILanguageExtensionPointHandler {
extractModeIds
(
commaSeparatedMimetypesOrCommaSeparatedIdsOrName
:
string
):
string
[];
extractModeIds
(
commaSeparatedMimetypesOrCommaSeparatedIdsOrName
:
string
):
string
[];
getModeIdsFromLanguageName
(
languageName
:
string
):
string
[];
getModeIdsFromLanguageName
(
languageName
:
string
):
string
[];
getModeIdsFromFilenameOrFirstLine
(
filename
:
string
,
firstLine
?:
string
):
string
[];
getModeIdsFromFilenameOrFirstLine
(
filename
:
string
,
firstLine
?:
string
):
string
[];
getCompatMode
(
modeId
:
string
):
AsyncDescriptor1
<
IModeDescriptor
,
IMode
>
;
getCompatMode
(
modeId
:
string
):
ICompatModeDescriptor
;
}
export
interface
ICompatModeDescriptor
{
moduleId
:
string
;
ctorName
:
string
;
}
}
class
LanguageExtensionPointHandler
implements
IThreadSynchronizableObject
<
ILanguagePointData
>
,
ILanguageExtensionPointHandler
{
class
LanguageExtensionPointHandler
implements
IThreadSynchronizableObject
<
ILanguagePointData
>
,
ILanguageExtensionPointHandler
{
...
@@ -187,7 +191,7 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
...
@@ -187,7 +191,7 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
private
name2LanguageId
:
{
[
name
:
string
]:
string
;
};
private
name2LanguageId
:
{
[
name
:
string
]:
string
;
};
private
name2Extensions
:
{
[
name
:
string
]:
string
[];
};
private
name2Extensions
:
{
[
name
:
string
]:
string
[];
};
private
id2Name
:
{
[
id
:
string
]:
string
;
};
private
id2Name
:
{
[
id
:
string
]:
string
;
};
private
compatModes
:
{
[
id
:
string
]:
AsyncDescriptor1
<
IModeDescriptor
,
IMode
>
;
};
private
compatModes
:
{
[
id
:
string
]:
ICompatModeDescriptor
;
};
private
lowerName2Id
:
{
[
name
:
string
]:
string
;
};
private
lowerName2Id
:
{
[
name
:
string
]:
string
;
};
private
id2ConfigurationFiles
:
{
[
id
:
string
]:
string
[];
};
private
id2ConfigurationFiles
:
{
[
id
:
string
]:
string
[];
};
...
@@ -252,7 +256,10 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
...
@@ -252,7 +256,10 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
mimetypes
:
def
.
mimetypes
mimetypes
:
def
.
mimetypes
});
});
this
.
compatModes
[
def
.
id
]
=
createAsyncDescriptor1
<
IModeDescriptor
,
IMode
>
(
def
.
moduleId
,
def
.
ctorName
);
this
.
compatModes
[
def
.
id
]
=
{
moduleId
:
def
.
moduleId
,
ctorName
:
def
.
ctorName
};
}
}
public
_handleLanguagesExtensionPointUsers
(
extensions
:
IExtensionPointUser
<
ILanguageExtensionPoint
[]
>
[]):
void
{
public
_handleLanguagesExtensionPointUsers
(
extensions
:
IExtensionPointUser
<
ILanguageExtensionPoint
[]
>
[]):
void
{
...
@@ -471,7 +478,7 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
...
@@ -471,7 +478,7 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
return
this
.
extractModeIds
(
mimeTypes
.
join
(
'
,
'
));
return
this
.
extractModeIds
(
mimeTypes
.
join
(
'
,
'
));
}
}
public
getCompatMode
(
modeId
:
string
):
AsyncDescriptor1
<
IModeDescriptor
,
IMode
>
{
public
getCompatMode
(
modeId
:
string
):
ICompatModeDescriptor
{
return
this
.
compatModes
[
modeId
]
||
null
;
return
this
.
compatModes
[
modeId
]
||
null
;
}
}
...
...
src/vs/editor/common/modes/modesRegistry.ts
浏览文件 @
be1e4855
...
@@ -10,7 +10,6 @@ import Modes = require('vs/editor/common/modes');
...
@@ -10,7 +10,6 @@ import Modes = require('vs/editor/common/modes');
import
Strings
=
require
(
'
vs/base/common/strings
'
);
import
Strings
=
require
(
'
vs/base/common/strings
'
);
import
EditorCommon
=
require
(
'
vs/editor/common/editorCommon
'
);
import
EditorCommon
=
require
(
'
vs/editor/common/editorCommon
'
);
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
AsyncDescriptor0
,
createAsyncDescriptor0
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
IPluginDescription
}
from
'
vs/platform/plugins/common/plugins
'
;
import
{
IPluginDescription
}
from
'
vs/platform/plugins/common/plugins
'
;
import
{
PluginsRegistry
}
from
'
vs/platform/plugins/common/pluginsRegistry
'
;
import
{
PluginsRegistry
}
from
'
vs/platform/plugins/common/pluginsRegistry
'
;
...
@@ -22,8 +21,8 @@ export var Extensions = {
...
@@ -22,8 +21,8 @@ export var Extensions = {
export
interface
IEditorModesRegistry
{
export
interface
IEditorModesRegistry
{
// --- worker participants registration
// --- worker participants registration
registerWorkerParticipant
(
modeId
:
string
,
descriptor
:
AsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
):
void
;
registerWorkerParticipant
(
modeId
:
string
,
moduleId
:
string
,
ctorName
?:
string
):
void
;
getWorkerParticipants
(
modeId
:
string
):
AsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
[];
getWorkerParticipants
(
modeId
:
string
):
Modes
.
IWorkerParticipantDescriptor
[];
_getAllWorkerParticipants
():
Modes
.
IWorkerParticipantDescriptor
[];
_getAllWorkerParticipants
():
Modes
.
IWorkerParticipantDescriptor
[];
_setWorkerParticipants
(
participants
:
Modes
.
IWorkerParticipantDescriptor
[]);
_setWorkerParticipants
(
participants
:
Modes
.
IWorkerParticipantDescriptor
[]);
...
@@ -53,10 +52,11 @@ class EditorModesRegistry implements IEditorModesRegistry {
...
@@ -53,10 +52,11 @@ class EditorModesRegistry implements IEditorModesRegistry {
// --- worker participants registration
// --- worker participants registration
public
registerWorkerParticipant
(
modeId
:
string
,
descriptor
:
AsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
):
void
{
public
registerWorkerParticipant
(
modeId
:
string
,
moduleId
:
string
,
ctorName
?:
string
):
void
{
this
.
workerParticipants
.
push
({
this
.
workerParticipants
.
push
({
modeId
:
modeId
,
modeId
:
modeId
,
descriptor
:
descriptor
moduleId
:
moduleId
,
ctorName
:
ctorName
});
});
}
}
...
@@ -68,8 +68,8 @@ class EditorModesRegistry implements IEditorModesRegistry {
...
@@ -68,8 +68,8 @@ class EditorModesRegistry implements IEditorModesRegistry {
this
.
workerParticipants
=
participants
;
this
.
workerParticipants
=
participants
;
}
}
public
getWorkerParticipants
(
modeId
:
string
):
AsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
[]
{
public
getWorkerParticipants
(
modeId
:
string
):
Modes
.
IWorkerParticipantDescriptor
[]
{
return
this
.
workerParticipants
.
filter
(
p
=>
p
.
modeId
===
modeId
)
.
map
(
p
=>
p
.
descriptor
)
;
return
this
.
workerParticipants
.
filter
(
p
=>
p
.
modeId
===
modeId
);
}
}
// --- modes registration
// --- modes registration
...
@@ -129,7 +129,7 @@ export function registerMode(def:ILegacyLanguageDefinition): void {
...
@@ -129,7 +129,7 @@ export function registerMode(def:ILegacyLanguageDefinition): void {
}
}
export
function
registerWorkerParticipant
(
modeId
:
string
,
moduleId
:
string
,
ctorName
?:
string
):
void
{
export
function
registerWorkerParticipant
(
modeId
:
string
,
moduleId
:
string
,
ctorName
?:
string
):
void
{
mR
.
registerWorkerParticipant
(
modeId
,
createAsyncDescriptor0
<
Modes
.
IWorkerParticipant
>
(
moduleId
,
ctorName
)
);
mR
.
registerWorkerParticipant
(
modeId
,
moduleId
,
ctorName
);
}
}
...
...
src/vs/editor/common/services/modeServiceImpl.ts
浏览文件 @
be1e4855
...
@@ -24,6 +24,7 @@ import {IEditorModesRegistry, Extensions} from 'vs/editor/common/modes/modesRegi
...
@@ -24,6 +24,7 @@ import {IEditorModesRegistry, Extensions} from 'vs/editor/common/modes/modesRegi
import
MonarchCommonTypes
=
require
(
'
vs/editor/common/modes/monarch/monarchCommon
'
);
import
MonarchCommonTypes
=
require
(
'
vs/editor/common/modes/monarch/monarchCommon
'
);
import
{
OnEnterSupport
,
IOnEnterSupportOptions
}
from
'
vs/editor/common/modes/supports/onEnter
'
;
import
{
OnEnterSupport
,
IOnEnterSupportOptions
}
from
'
vs/editor/common/modes/supports/onEnter
'
;
import
{
IDisposable
,
combinedDispose
,
empty
as
EmptyDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
IDisposable
,
combinedDispose
,
empty
as
EmptyDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
AsyncDescriptor
,
createAsyncDescriptor0
,
createAsyncDescriptor1
}
from
'
vs/platform/instantiation/common/descriptors
'
;
interface
IModeConfigurationMap
{
[
modeId
:
string
]:
any
;
}
interface
IModeConfigurationMap
{
[
modeId
:
string
]:
any
;
}
...
@@ -203,11 +204,12 @@ export class ModeServiceImpl implements IModeService {
...
@@ -203,11 +204,12 @@ export class ModeServiceImpl implements IModeService {
protected
_createMode
(
modeId
:
string
):
TPromise
<
Modes
.
IMode
>
{
protected
_createMode
(
modeId
:
string
):
TPromise
<
Modes
.
IMode
>
{
let
activationEvent
=
'
onLanguage:
'
+
modeId
;
let
activationEvent
=
'
onLanguage:
'
+
modeId
;
let
compatMode
AsyncDescriptor
=
LanguageExtensions
.
getCompatMode
(
modeId
);
let
compatMode
Data
=
LanguageExtensions
.
getCompatMode
(
modeId
);
if
(
compatMode
AsyncDescriptor
)
{
if
(
compatMode
Data
)
{
return
this
.
_pluginService
.
activateByEvent
(
activationEvent
).
then
((
_
)
=>
{
return
this
.
_pluginService
.
activateByEvent
(
activationEvent
).
then
((
_
)
=>
{
var
modeDescriptor
=
this
.
_createModeDescriptor
(
modeId
);
var
modeDescriptor
=
this
.
_createModeDescriptor
(
modeId
);
let
compatModeAsyncDescriptor
=
createAsyncDescriptor1
<
Modes
.
IModeDescriptor
,
Modes
.
IMode
>
(
compatModeData
.
moduleId
,
compatModeData
.
ctorName
);
return
this
.
_threadService
.
createInstance
(
compatModeAsyncDescriptor
,
modeDescriptor
);
return
this
.
_threadService
.
createInstance
(
compatModeAsyncDescriptor
,
modeDescriptor
);
}).
then
((
compatMode
)
=>
{
}).
then
((
compatMode
)
=>
{
if
(
compatMode
.
configSupport
)
{
if
(
compatMode
.
configSupport
)
{
...
@@ -235,7 +237,7 @@ export class ModeServiceImpl implements IModeService {
...
@@ -235,7 +237,7 @@ export class ModeServiceImpl implements IModeService {
var
workerParticipants
=
modesRegistry
.
getWorkerParticipants
(
modeId
);
var
workerParticipants
=
modesRegistry
.
getWorkerParticipants
(
modeId
);
return
{
return
{
id
:
modeId
,
id
:
modeId
,
workerParticipants
:
workerParticipants
workerParticipants
:
workerParticipants
.
map
(
p
=>
createAsyncDescriptor0
(
p
.
moduleId
,
p
.
ctorName
))
};
};
}
}
...
...
src/vs/platform/instantiation/common/descriptors.ts
浏览文件 @
be1e4855
...
@@ -6,7 +6,6 @@
...
@@ -6,7 +6,6 @@
import
errors
=
require
(
'
vs/base/common/errors
'
);
import
errors
=
require
(
'
vs/base/common/errors
'
);
import
objects
=
require
(
'
vs/base/common/objects
'
);
import
objects
=
require
(
'
vs/base/common/objects
'
);
import
marshalling
=
require
(
'
vs/base/common/marshalling
'
);
import
hash
=
require
(
'
vs/base/common/hash
'
);
import
hash
=
require
(
'
vs/base/common/hash
'
);
import
instantiation
=
require
(
'
./instantiation
'
);
import
instantiation
=
require
(
'
./instantiation
'
);
...
@@ -198,45 +197,7 @@ export interface SyncDescriptor8<A1, A2, A3, A4, A5, A6, A7, A8, T> {
...
@@ -198,45 +197,7 @@ export interface SyncDescriptor8<A1, A2, A3, A4, A5, A6, A7, A8, T> {
bind
(
a1
:
A1
,
a2
:
A2
,
a3
:
A3
,
a4
:
A4
,
a5
:
A5
,
a6
:
A6
,
a7
:
A7
,
a8
:
A8
):
SyncDescriptor0
<
T
>
;
bind
(
a1
:
A1
,
a2
:
A2
,
a3
:
A3
,
a4
:
A4
,
a5
:
A5
,
a6
:
A6
,
a7
:
A7
,
a8
:
A8
):
SyncDescriptor0
<
T
>
;
}
}
export
interface
IAsyncDescriptor
{
export
class
AsyncDescriptor
<
T
>
extends
AbstractDescriptor
<
T
>
implements
objects
.
IEqualable
{
moduleName
:
string
;
ctorName
:
string
;
}
export
interface
ISerializedAsyncDescriptor
{
$isAsyncDescriptor
:
boolean
;
$moduleName
:
string
;
$ctorName
:
string
;
$staticArguments
:
any
[];
}
marshalling
.
registerMarshallingContribution
({
canSerialize
:
(
obj
:
any
):
boolean
=>
{
return
obj
instanceof
AsyncDescriptor
;
},
serialize
:
(
asyncDescriptor
:
AsyncDescriptor
<
any
>
,
serialize
:(
obj
:
any
)
=>
any
):
ISerializedAsyncDescriptor
=>
{
return
{
$isAsyncDescriptor
:
true
,
$moduleName
:
asyncDescriptor
.
moduleName
,
$ctorName
:
asyncDescriptor
.
ctorName
,
$staticArguments
:
serialize
(
asyncDescriptor
.
staticArguments
())
};
},
canDeserialize
:
(
obj
:
ISerializedAsyncDescriptor
):
boolean
=>
{
return
obj
.
$isAsyncDescriptor
;
},
deserialize
:
(
obj
:
ISerializedAsyncDescriptor
,
deserialize
:(
obj
:
any
)
=>
any
):
any
=>
{
var
r
=
new
AsyncDescriptor
<
any
>
(
obj
.
$moduleName
,
obj
.
$ctorName
);
r
.
appendStaticArguments
(
deserialize
(
obj
.
$staticArguments
));
return
r
;
}
});
export
class
AsyncDescriptor
<
T
>
extends
AbstractDescriptor
<
T
>
implements
IAsyncDescriptor
,
objects
.
IEqualable
{
public
static
create
<
T
>
(
moduleName
:
string
,
ctorName
:
string
):
AsyncDescriptor
<
T
>
{
public
static
create
<
T
>
(
moduleName
:
string
,
ctorName
:
string
):
AsyncDescriptor
<
T
>
{
return
new
AsyncDescriptor
<
T
>
(
moduleName
,
ctorName
);
return
new
AsyncDescriptor
<
T
>
(
moduleName
,
ctorName
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录