编程语言
首页 > 编程语言> > c# – 在代码段中获取命名空间

c# – 在代码段中获取命名空间

作者:互联网

Microsoft链接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>

解决方法:

发现它可以完成并且它将ExpansionProvider和& ExpansionFunction

对于上面的代码片段,我不得不这样做:

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;
        }
    }

事实证明这更像是一个教程问题,因此我提供了上面的链接.应该会有所帮助.为我工作:)

标签:c,visual-studio-2010,visual-studio-2008,code-snippets,visual-studio-sdk
来源: https://codeday.me/bug/20190620/1247608.html