带有 ServiceStack 和 Angular 的 C# - 使用枚举 类 而不是 dto.ts 中的枚举类型
C# with ServiceStack and Angular - Use enumeration classes instead of enum types in dto.ts
如何访问 ServiceStack 为 Angular 生成的 dto.ts
文件中自定义枚举的属性(例如 AddressChanges
)-class?
带基数的枚举-class
public class MutationType : Enumeration
{
public static MutationType AddressChanges = new MutationType(1, nameof(AddressChanges));
public static MutationType SomethingElse = new MutationType(2, nameof(SomethingElse));
...
public MutationType(int id, string name)
: base(id, name)
{
}
}
使用 Service-Stack
自动生成 dto.ts
export class MutationType extends Enumeration
{
// The static fields are missing..
public constructor(init?: Partial<MutationType>) { super(init); (Object as any).assign(this, init); }
}
你不能,DTO(数据传输对象)不应该有任何逻辑或实现。只有 DTO 的数据结构(即模式)能够使用 ServiceStack's Native Types generation 功能进行转换。
所以你的 DTO Service Models 应该只包含无实现的数据结构,比如枚举:
public enum MutationType
{
AddressChanges,
SomethingElse,
}
或者,如果您更喜欢将枚举值作为整数发送,您可以使用 [Flags]
属性对其进行注释:
[Flags]
public enum MutationType
{
AddressChanges = 1,
SomethingElse = 2,
}
然后您需要将枚举中的值映射回您自定义的复杂枚举类型,但所有进出服务层的服务模型都应该只是 POCO DTO。
如何访问 ServiceStack 为 Angular 生成的 dto.ts
文件中自定义枚举的属性(例如 AddressChanges
)-class?
带基数的枚举-class
public class MutationType : Enumeration
{
public static MutationType AddressChanges = new MutationType(1, nameof(AddressChanges));
public static MutationType SomethingElse = new MutationType(2, nameof(SomethingElse));
...
public MutationType(int id, string name)
: base(id, name)
{
}
}
使用 Service-Stack
自动生成 dto.tsexport class MutationType extends Enumeration
{
// The static fields are missing..
public constructor(init?: Partial<MutationType>) { super(init); (Object as any).assign(this, init); }
}
你不能,DTO(数据传输对象)不应该有任何逻辑或实现。只有 DTO 的数据结构(即模式)能够使用 ServiceStack's Native Types generation 功能进行转换。
所以你的 DTO Service Models 应该只包含无实现的数据结构,比如枚举:
public enum MutationType
{
AddressChanges,
SomethingElse,
}
或者,如果您更喜欢将枚举值作为整数发送,您可以使用 [Flags]
属性对其进行注释:
[Flags]
public enum MutationType
{
AddressChanges = 1,
SomethingElse = 2,
}
然后您需要将枚举中的值映射回您自定义的复杂枚举类型,但所有进出服务层的服务模型都应该只是 POCO DTO。