我很好奇是否有人知道如何解决这个问题:当我在WCF配置中添加bindingExtension或bindingElementExtension时,Visual Studio会抛出架构验证警告,因为扩展的名称不在system.serviceModel架构中:
警告1元素“bindings”的子元素“nmsBinding”无效。预期的可能元素列表:“basicHttpBinding、customBinding、msmqIntegrationBinding、netPeerTcpBinding、netMsmqBinding、netNamedPipeBinding、netTcpBindings、wsFederationHttpBinding、ws2007FederationHttpBinding、ws2007HttpBinding、wsDualHttpBinding、mexHttpsBinding、mexNamedPipeBinding、mexCpBinding,webHttpBinding,netTcpContextBinding,wsHttpContextBinding,basicHttpContextBinding”。
这可能是一个愚蠢的问题,但有没有一种方法可以在visualstudio中“动态”注册这些扩展,以便它们进行验证?我在想我可以在visual studio配置中的某个地方放置一个xsd,但如果有其他神奇的方法,我宁愿不这样做。
以下是我的serviceModel配置:
<system.serviceModel>
<services>
<service name="Zed.Apache.NMS.WCF.Test.Server.TestApacheNMSService">
<endpoint
name="nmsServiceEndpoint"
address="tcp://localhost:61616"
binding="nmsBinding"
bindingConfiguration="defaultNmsBinding"
contract="Zed.Apache.NMS.WCF.Test.Server.ITestApacheNMSService" />
</service>
</services>
<bindings>
<nmsBinding> <!-- VALIDATION ERROR HERE -->
<binding name="defaultNmsBinding"
destination="TestApacheNMSQueue"
destinationType="Queue" />
</nmsBinding>
</bindings>
<extensions>
<bindingExtensions>
<add name="nmsBinding"
type="Apache.NMS.WCF.NmsBindingCollection, Zed.Apache.NMS.WCF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bindingExtensions>
</extensions>
</system.serviceModel>