servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 元数据中仅序列化特定属性

C# 元数据中仅序列化特定属性,c#,servicestack,C#,servicestack,在一个应用程序中,我有一个从基类继承的请求,当我查看元数据时,我遇到了一个奇怪的问题,我只序列化了“Max”,而没有序列化“Header” 在执行应用程序时,它会工作……在准备请求存根时,似乎出现了问题 public class SomeRequest : SomeBaseClass<int> { public int Max { get; set; } } public class SomeBaseClass<T> { public Header So

在一个应用程序中,我有一个从基类继承的请求,当我查看元数据时,我遇到了一个奇怪的问题,我只序列化了“Max”,而没有序列化“Header”

在执行应用程序时,它会工作……在准备请求存根时,似乎出现了问题

public class SomeRequest : SomeBaseClass<int>
{
    public int Max { get; set; }
}

public class SomeBaseClass<T> 
{
   public Header SomeHeader { get; set; }

   public T Response {get;set;}
}


public class Header
{
    public int IDUser { get; set; }

    public string Name { get; set; }
}    
公共类SomeRequest:SomeBaseClass
{
公共int Max{get;set;}
}
公共类SomeBaseClass
{
公共标头SomeHeader{get;set;}
公共T响应{get;set;}
}
公共类标题
{
public int IDUser{get;set;}
公共字符串名称{get;set;}
}    
有人能帮我吗

另外,我知道hinerithance继承在SS中不太好,但我几乎所有的请求都需要相同的头参数


谢谢

您已经回答了您自己的问题。SS建议不要继承,因此元数据不支持描述DTO。这是故意的。我会遵循推荐的设计模式

完全创建对象。这需要更多的努力,但您将获得正确的元数据,您的服务DTO对客户端来说是清晰的,并且遵循ServiceStack的干式原则

公共类请求
{
公共int Max{get;set;}
公共标头SomeHeader{get;set;}
公共int响应{get;set;}
}
:

DTO中的继承是一个坏主意-DTO应该尽可能地自我描述,并且通过有效地使用继承,客户端不知道服务最终会返回什么。这就是为什么在大多数“基于标准”的序列化程序中,DTO类无法正确地反序列化/序列化


另一种选择是实现您自己的。但这不是一项容易的任务,因此我想实现这一点的努力要比编写没有继承的完整DTO更重要。

您已经回答了自己的问题。SS建议不要继承,因此元数据不支持描述DTO。这是故意的。我会遵循推荐的设计模式

完全创建对象。这需要更多的努力,但您将获得正确的元数据,您的服务DTO对客户端来说是清晰的,并且遵循ServiceStack的干式原则

公共类请求
{
公共int Max{get;set;}
公共标头SomeHeader{get;set;}
公共int响应{get;set;}
}
:

DTO中的继承是一个坏主意-DTO应该尽可能地自我描述,并且通过有效地使用继承,客户端不知道服务最终会返回什么。这就是为什么在大多数“基于标准”的序列化程序中,DTO类无法正确地反序列化/序列化


另一种选择是实现您自己的。但这不是一项容易的任务,因此我想实现这一点的努力要比编写没有继承的完整DTO更重要。

您已经回答了自己的问题。SS建议不要继承,因此元数据不支持描述DTO。这是故意的。我会遵循推荐的设计模式

完全创建对象。这需要更多的努力,但您将获得正确的元数据,您的服务DTO对客户端来说是清晰的,并且遵循ServiceStack的干式原则

公共类请求
{
公共int Max{get;set;}
公共标头SomeHeader{get;set;}
公共int响应{get;set;}
}
:

DTO中的继承是一个坏主意-DTO应该尽可能地自我描述,并且通过有效地使用继承,客户端不知道服务最终会返回什么。这就是为什么在大多数“基于标准”的序列化程序中,DTO类无法正确地反序列化/序列化


另一种选择是实现您自己的。但这不是一项容易的任务,因此我想实现这一点的努力要比编写没有继承的完整DTO更重要。

您已经回答了自己的问题。SS建议不要继承,因此元数据不支持描述DTO。这是故意的。我会遵循推荐的设计模式

完全创建对象。这需要更多的努力,但您将获得正确的元数据,您的服务DTO对客户端来说是清晰的,并且遵循ServiceStack的干式原则

公共类请求
{
公共int Max{get;set;}
公共标头SomeHeader{get;set;}
公共int响应{get;set;}
}
:

DTO中的继承是一个坏主意-DTO应该尽可能地自我描述,并且通过有效地使用继承,客户端不知道服务最终会返回什么。这就是为什么在大多数“基于标准”的序列化程序中,DTO类无法正确地反序列化/序列化


另一种选择是实现您自己的。但这不是一项容易的任务,因此我想实现这一点的努力要比编写完整的DTO(无继承)更重要。

您是否同意完整编写DTO的建议?您好Scott,请原谅我在asnwer中的延迟…这样就行了!谢谢太好了。不幸的是,周围没有容易的工作。请记住接受答案。谢谢。你同意我的建议写完整的DTO吗?你好,斯科特,请原谅我在asnwer的耽搁…这样就行了!谢谢太好了。不幸的是,周围没有容易的工作。请记住接受答案。谢谢。你同意我的建议写完整的DTO吗?你好,斯科特,请原谅我在asnwer的耽搁…这样就行了!谢谢太好了。不幸的是,周围没有容易的工作。请记住接受答案。谢谢。你同意我的建议写完整的DTO吗?你好,斯科特,请原谅我在asnwer的耽搁…这样就行了!谢谢太好了。不幸的是,周围没有容易的工作。请记住接受这封信