Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varning
Om du vill använda den angivna migreringsmetoden får du inte ta bort de gamla implementeringarna av principerna innan du följer den här guiden.
- Om du vill migrera dina anpassade principer bör du först skapa en ny klass med samma metoder men ärva från
CheckinPolicyBase-klassen (IPolicyCompatibilityJsonförIPolicyCompatibility) i stället förPolicyBase. Exempel:
Föråldrad
[Serializable]
public class Simple : PolicyBase
{
public override string Description => "SimplePolicyDescription";
...
}
Uppdaterad
[Serializable]
public class SimpleNew : CheckinPolicyBase
{
public override string Description => "SimplePolicyDescription";
...
}
- Om
GetBinaryFormatterskulle åsidosättas, bör du även implementeraGetJsonSerializerSettingsmed samma logik för serialisering. Exempel:
Föråldrad
[Serializable]
public class Simple : PolicyBase
{
public override BinaryFormatter GetBinaryFormatter()
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Binder = new SimpleBinder();
return formatter;
}
...
}
Uppdaterad
[Serializable]
public class SimpleNew : CheckinPolicyBase
{
public override JsonSerializerSettings GetJsonSerializerSettings()
{
return new JsonSerializerSettings()
{
SerializationBinder = new SimpleNewSerializationBinder(),
TypeNameHandling = TypeNameHandling.Objects
};
}
...
}
- I stället för de gamla metoderna som
GetCheckinPoliciesForServerPaths/GetCheckinPolicies/SetCheckinPoliciesintroducerades nya:GetCheckinClientPoliciesForServerPaths/GetCheckinClientPolicies/SetCheckinClientPoliciesdärför. Standardbeteendet just nu förLoadPoliciesmetoden i paketet är till exempel att använda nya principer om de skapas/är tillgängliga och föråldrade om de saknas.
Anmärkning
Om du inte planerar att använda migreringsmetoden som tillhandahålls av NuGet-paketet kan ytterligare instruktioner utelämnas och föråldrade principer kan tas bort, du är klar, grattis!
- För din föråldrade policy, lägg till
IPolicyMigration(detta gränssnitt har markerats som föråldrat endast för att visa att det kommer att tas bort som onödigt tillsammans medPolicyBaseochIPolicyCompatibility).
Varning
Föråldrade principer som inte ärver det här gränssnittet hoppas över under migreringen och sparas inte som nya principer.
- Implementera
ToNewPolicyTypefrån det nämnda gränssnittet. Den bör returnera instansen av den nyligen skapade principklassen som baseras på den nyligen ändrade policyn. Exempel:
[Serializable]
public class Simple : PolicyBase, IPolicyMigration
{
...
public CheckinPolicyBase ToNewPolicyType()
{
return new SimpleNew();
}
}
- Anropsmetod
MigrateFromOldPolicies.
Du är klar, grattis!