微软链接here列出了我们可以使用的三种方法。
但是我们如何获取当前的命名空间呢?
我看到有一个类似的问题,但答案是使用宏,它不能解决这个特定问题。
NameSpace() 可以执行以下操作:
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
.
.
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>namespace</ID>
<Function>NameSpace()</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
$namespace$
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
发现这是可以做到的,并且它使课程更加清晰扩展提供者 & 扩展功能
对于上面的片段,我必须做这样的事情:
internal class NameSpaceExpansionFunction : ExpansionFunction
{
public NameSpaceExpansionFunction(ExpansionProvider provider)
: base(provider)
{
}
public override string GetCurrentValue()
{
//get namespace
return namespace;
}
}
LanguageService 告诉代码片段文件在哪里查找函数的定义:
public class MyLanguageService : LanguageService
{
public override ExpansionFunction CreateExpansionFunction(ExpansionProvider provider,
string functionName)
{
ExpansionFunction function = null;
if (String.Compare(functionName, "NameSpace", true) == 0)
{
function = new NameSpaceExpansionFunction(provider);
}
return function;
}
}
事实证明,这更像是一个教程问题,因此我提供了上面的链接。应该有帮助。为我工作:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)