Refactor reference handling to use a wrapper class
Replaced direct use of `CrossScopedReferenceHandler` with `PerCallReferenceHandlerWrapper` for improved abstraction and reusability. Updated `ApplyOptions` to leverage the new wrapper, simplifying reference resolver management. Commented out redundant code to streamline the implementation.
This commit is contained in:
parent
506a36574b
commit
d2777f70de
|
|
@ -24,4 +24,12 @@ public class CrossScopedReferenceHandler : ReferenceHandler
|
|||
/// </summary>
|
||||
/// <returns>The reference resolver.</returns>
|
||||
public ReferenceResolver GetResolver() => _rootedResolver!;
|
||||
}
|
||||
|
||||
public class PerCallReferenceHandlerWrapper : ReferenceHandler
|
||||
{
|
||||
public override ReferenceResolver CreateResolver()
|
||||
{
|
||||
return new CrossScopedReferenceHandler().CreateResolver();
|
||||
}
|
||||
}
|
||||
|
|
@ -126,14 +126,19 @@ public class JsonWorkflowStateSerializer : ConfigurableSerializer, IWorkflowStat
|
|||
return JsonSerializer.Deserialize<T>(serializedState, options)!;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override JsonSerializerOptions GetOptions()
|
||||
// /// <inheritdoc />
|
||||
// public override JsonSerializerOptions GetOptions()
|
||||
// {
|
||||
// var options = base.GetOptions();
|
||||
// return new JsonSerializerOptions(options)
|
||||
// {
|
||||
// ReferenceHandler = new CrossScopedReferenceHandler()
|
||||
// };
|
||||
// }
|
||||
|
||||
public override void ApplyOptions(JsonSerializerOptions options)
|
||||
{
|
||||
var options = base.GetOptions();
|
||||
return new JsonSerializerOptions(options)
|
||||
{
|
||||
ReferenceHandler = new CrossScopedReferenceHandler()
|
||||
};
|
||||
options.ReferenceHandler = new PerCallReferenceHandlerWrapper();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
|
|||
Loading…
Reference in a new issue