Web.config przekształca - brakujący podręcznik

Możesz przeczytać web.config przekształca dokumentacjętutaj itam, ale są dwa białe słonie, o których nikt nie mówi:

Jak wykonać zmienną zmienną w aCondition lubXPath przekształcić i ...Czy aLocator byćsensownie zagnieżdżony wewnątrz aTransform?

Podam przykład, który skorzystałby z jednej z tych opcji. Przypuśćmy, że mam to:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Załóżmy, że chcę całkowicie wymazaćdependentAssembly węzeł i jego dzieci, który pasuje do xpath//runtime/assemblyBinding/dependentAssembly[assemblyIdentity@name='System.Web.Mvc']. Aby to zrobić, mógłbym chcieć czegoś takiego:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity 
          name="System.Web.Mvc" 
          xdt:Remove 
          xdt:Locator="Condition(..[*@name=$name])" 
      />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Oczywiście zrobiłem składnię@name=$name oparte nakoncepcje zmiennych xpath, ale ten przykład pokazuje, dlaczego chciałbym tę funkcję. Czy to jest obsługiwane? Jak muszę dostosować moją składnię, aby to wykorzystać? Mogłabym umieścić literał ciągu, ale chcę tylko wiedzieć, czy to możliwe.

Innym sposobem mogę spróbować usunąćdependentAssembly jest z tym:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xdt:Transform="Remove">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" xdt:Locator="Match(name)" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Zwróć uwagę naTransform znajduje się na węźle wielkiego rodzica, a lokalizator znajduje się na węźle liścia. Czy powyższe jest uzasadnione? Chodzi o usunięcie tylkodependantAssembly węzeł z wewnętrznym dopasowaniem lokalizatora.

Pomijając te dwa podejścia, jak byś zmienił sposób usuwania kierowaniadependantAssembly i wszystkie jego węzły podrzędne?

questionAnswers(3)

yourAnswerToTheQuestion