VS2008的问题 C# 2008新特性
VS2008 的问题
下载了SnippetEditor的源代码来看,SnippetEditor是用VB写的,用到了Linq,我试着用C#重写一下,遇到点小问题。
以下是里面的一段代码(VB代码,重点在里面的XML代码段),不知道在C#里面有没有相似的代码样式。
我用Reflector查看了一下,发现转换的C#代码已经面目全非,不知道哪位达人了解这方面的问题。
Public Function ToFile(ByVal filename As String) As Boolean
'HACK fixes a bug if you try to use _codeSnippet.Snippet.Imports.List inside a query
Dim importitems = _codeSnippet.Snippet.Imports.List
Dim xcdCode As New XCData(_codeSnippet.Snippet.Code.Data)
Dim doc As XDocument = <?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format=<%= _codeSnippet.Format %>>
<Header>
<Title><%= _codeSnippet.Header.Title %></Title>
<Author><%= _codeSnippet.Header.Author %></Author>
<Description><%= _codeSnippet.Header.Description %></Description>
<HelpUrl><%= _codeSnippet.Header.HelpUrl %></HelpUrl>
<SnippetTypes>
<%= From item In _codeSnippet.Header.SnippetTypes.List Select <SnippetType><%= item %></SnippetType> %>
</SnippetTypes>
<Keywords>
<%= From item In _codeSnippet.Header.Keywords.List Select <Keyword><%= item %></Keyword> %>
</Keywords>
<Shortcut><%= _codeSnippet.Header.Shortcut %></Shortcut>
</Header>
<Snippet>
<References>
<%= From item In _codeSnippet.Snippet.References.List Select _
<Reference><Assembly><%= item.Assembly %></Assembly><Url><%= item.Url %></Url></Reference> %>
</References>
<Imports>
<%= From item In importitems Select <Import><Namespace><%= item.Namespace %></Namespace></Import> %>
</Imports>
<Declarations>
<%= From item In _codeSnippet.Snippet.Declarations.Replacements Select _
If(item.ReplacementKind = ReplacementKind.Literal, _
<Literal Editable=<%= item.Editable %>>
<ID><%= item.Id %></ID>
<Type><%= item.Type %></Type>
<ToolTip><%= item.Tooltip %></ToolTip>
<Default><%= item.Default %></Default>
<Function><%= item.Function %></Function>
</Literal>, _
<Object Editable=<%= item.Editable %>>
<ID><%= item.Id %></ID>
<Type><%= item.Type %></Type>
<ToolTip><%= item.Tooltip %></ToolTip>
<Default><%= item.Default %></Default>
<Function><%= item.Function %></Function>
</Object>) %>
</Declarations>
<Code Language=<%= _codeSnippet.Snippet.Code.Language %>
Kind=<%= _codeSnippet.Snippet.Code.Kind %>
Delimiter=<%= _codeSnippet.Snippet.Code.Delimiter %>
><%= xcdCode %></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
doc.Save(filename)
_filename = filename
Return True
End Function