0

I'm receiving exception:

Newtonsoft.Json.JsonSerializationException: Self referencing loop detected with type 'DbGet.Service.Auth.AuthUserRegisterSagaData'. Path 'Tenant.CanRollback'.

    internal class AuthUserRegisterSagaData : ContainSagaData
{
    public AuthUserRegisterSagaData()
    {
        Tenant = new MultipartEntitySagaData<TenantEntity>();
        TenantUser = new MultipartEntitySagaData<TenantUserEntity>();
        Workspace = new MultipartEntitySagaData<WorkspaceEntity>();
        Workspace.CanRollback = () => true;
        TenantUser.CanRollback = () => Workspace.RollbackCommandStatus == CommandStatusEnum.Completed;
        Tenant.CanRollback = () => TenantUser.RollbackCommandStatus == CommandStatusEnum.Completed;
    }

    public string Email { get; set; }

    /// <summary>
    /// Is User Entity saved
    /// </summary>
    public bool IsUserCreated { get; set; }

    public Guid UserId { get; set; }

    public IdentityUserEntity Entity { get; set; }

    public MultipartEntitySagaData<TenantEntity> Tenant { get; set; }

    public MultipartEntitySagaData<TenantUserEntity> TenantUser { get; set; }

    public MultipartEntitySagaData<WorkspaceEntity> Workspace { get; set; }
}

public class MultipartEntitySagaData<TEntity>: MultipartSagaData
{
    public TEntity Entity { get; set; }      
}

public class MultipartSagaData
{
    public CommandStatusEnum CommandStatus { get; set; }

    public CommandStatusEnum RollbackCommandStatus { get; set; }

    [JsonIgnore]
    public Func<bool> CanRollback { get; set; }
}

I don't understand why because I marked this property as nonserializable.

1 Answers1

0

Could you show some code on what you are serializing? Is it those 3 classes or less? If you are also serializing the internal class, it looks to me that the Tenant (that will be serialized) gives the problem in the contructor.

Here a link with the same error. Hopefully it will help. Same error

Mirzoda
  • 3
  • 1
  • 4