Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Java-csomagnevek gyakran nem egyeznek a C# névtérkonvenciáival olyan problémák miatt, mint a további előtagok és a nagybetűs különbségek.
A Java-csomag neve com.microsoft.streamwriters például automatikusan le lesz fordítva Com.Microsoft.Streamwriters , mert a kötési folyamat automatikusan lefordítja a névtereket Pascal-esetre. Azonban egy jobb illeszkedés lenne Microsoft.StreamWriters.
Ezt úgy teheti meg, hogy hozzáad egy <AndroidNamespaceReplacement> elemet a projektfájlhoz:
<ItemGroup>
<AndroidNamespaceReplacement Include='com.microsoft.streamwriters' Replacement='Microsoft.StreamWriters' />
</ItemGroup>
Bár a Java-csomagok hagyományos metadatahasználatával is átnevezhetők, sok hasonló csomag átnevezése nehézkes lehet:
<attr path="/api/package[@name='com.microsoft.accessibility']" name="managedName">Microsoft.Accessibility</attr>
<attr path="/api/package[@name='com.microsoft.content']" name="managedName">Microsoft.Content</attr>
<attr path="/api/package[@name='com.microsoft.core']" name="managedName">Microsoft.Core</attr>
...
Ezzel <AndroidNamespaceReplacement>a projektfájlban elhelyezett MSBuild átalakítás az összes egyező csomagra alkalmazható:
<ItemGroup>
<AndroidNamespaceReplacement Include='com.microsoft' Replacement='Microsoft' />
</ItemGroup>
Specification
Ezek a cserék csak olyan elemek esetén <package> lesznek futtatva, amelyek nem adnak meg attribútumot metadata@managedName .
Ha @managedName opciót választja, a pontos kívánt nevet megadja, a rendszer nem dolgozza fel tovább.
A nem használt metaadatokkal ellentétben ezek a csere nem fog figyelmeztetést generálni, ha használaton kívül vannak.
Betűérzékenység
A csere az automatikus Pascal-esetátalakítás után fut, de az összehasonlítás nem érzékeny a kis- és nagybetűkre.
Így a következők mindegyike egyenértékű:
<AndroidNamespaceReplacement Include='Androidx' Replacement='AndroidX' />
<AndroidNamespaceReplacement Include='androidx' Replacement='AndroidX' />
Word-korlátok
A csere csak teljes szavakon (névtérrészeken) történik.
Így
<AndroidNamespaceReplacement Include='Com' Replacement='' />
Az Com.Google.Library egyezik, de Common.Google.Library vagy Google.Imaging.Dicom nem.
Több teljes szó is használható:
<AndroidNamespaceReplacement Include='Com.Google' Replacement='Google' />
<AndroidNamespaceReplacement Include='Com.Androidx' Replacement='Microsoft.AndroidX' />
Szó pozíciója
A szórész-egyezés korlátozható a névtér elejére a . előtételével vagy a végére a . hozzáfűzésével.
<AndroidNamespaceReplacement Include='Androidx.' Replacement='Microsoft.AndroidX' />
Megfelel Androidx.Core, de nem Square.OkHttp.Androidx.
Hasonlóképpen:
<AndroidNamespaceReplacement Include='.Compose' Replacement='ComposeUI' />
illik Google.AndroidX.Compose, de nem Google.Compose.Writer.
Az előtoldás vagy a hozzáfűzés a . esetén pontos egyezést eredményez.
<AndroidNamespaceReplacement Include='.Androidx.' Replacement='Microsoft.AndroidX' />
egyezések Androidx, de nem Google.Androidx.Core.
Csererendelés
A cserék a megadott <ItemGroup>sorrendben futnak, de a csoporthoz különböző időpontokban történő hozzáadása nem kívánt sorrendet eredményezhet.
A cserék egymás után futnak, és több csere is hatással lehet egyetlen névtérre.
<AndroidNamespaceReplacement Include='Androidx' Replacement='Microsoft.AndroidX' />
<AndroidNamespaceReplacement Include='View' Replacement='Views' />
változtatja Androidx.View-t Microsoft.AndroidX.Views-re.
Metaadatokhoz való viszony
@(AndroidNamespaceReplacement) Technikailag speciális esetként van megvalósítva <metadata>-ként, és közvetlenül elhelyezhető egy metadata.xml fájlban.
szükség esetén metaadat-űrlap.
Vagyis az MSBuild elem:
<ItemGroup>
<AndroidNamespaceReplacement Include='com.microsoft' Replacement='Microsoft' />
</ItemGroup>
ehelyett a következőként helyezhető el metadata.xml :
<metadata>
<ns-replace source='com.microsoft' replacement='Microsoft' />
</metadata>