即使定义了架构,也无法获得VS2013 Intellisense的自定义配置

时间:2015-09-24 03:58:28

标签: c# intellisense custom-configuration

我有自定义配置部分,我可以正确阅读。现在我想要Intellisense。

我创建了我的架构,首先创建一个只有我的配置部分的XML,然后得到VS2013来为我生成Schema文件。将其命名为CustomConfig.xsd并添加到我的项目中。我在this SO item中根据@ stakx的答案更新了架构,所以它看起来像这样:

<xs:schema id="customConfigSchema"
           targetNamespace="http://tempuri.org/customConfig.xsd"
           elementFormDefault="qualified"
           xmlns="http://tempuri.org/customConfig.xsd"
           xmlns:mstns="http://tempuri.org/customConfig.xsd"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="customConfig">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="someElement">
          <xs:complexType>
            ...
          </xs:complexType>
        </xs:element>
        ...
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

然后在我的app.config中,我将架构详细信息添加到<customConfig>,如下所示:

<configuration>
  <configSections>
    ...
    <section name="customConfig" type="..." />
  </configSections>
  ...
  <customConfig xmlns="http://tempuri.org/customConfig.xsd" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema" 
                xsi:noNamespaceSchemaLocation="customConfig.xsd">
    <someElement ... />
  </customConfig>
</configuration>

保存所有内容,然后我尝试通过编辑<someElement>来测试它,但没有Intellisense。我错过了什么?

我可以看到,当我打开app.config并查看属性窗口时,模式显示我的模式文件已勾选。所以我只能假设它从我的app.config中获取了schema属性。但没有Intellisense。

更新

我刚刚意识到我的app.config上根本没有获得智能感知。

1 个答案:

答案 0 :(得分:0)

我在VS2015上打开了我的解决方案,它在我的自定义配置上给了我Intellisense。

然后我注意到我的VS2013由于某种原因,默认情况下不使用DotNetConfig.xsd。在VS2015上并非如此。当我在VS2013上勾选它以便它被使用时,我的自定义配置的Intellisense开始工作。