【发布时间】:2018-06-03 02:51:20
【问题描述】:
我收到异常:
Newtonsoft.Json.JsonSerializationException:检测到类型为“DbGet.Service.Auth.AuthUserRegisterSagaData”的自引用循环。路径“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; }
}
我不明白为什么,因为我将此属性标记为不可序列化。
【问题讨论】: