我有自定义配置部分,我可以正确阅读。现在我想要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
上根本没有获得智能感知。
答案 0 :(得分:0)
我在VS2015上打开了我的解决方案,它在我的自定义配置上给了我Intellisense。
然后我注意到我的VS2013由于某种原因,默认情况下不使用DotNetConfig.xsd
。在VS2015上并非如此。当我在VS2013上勾选它以便它被使用时,我的自定义配置的Intellisense开始工作。