ServiceStack在反序列化器中实现魔术令牌

时间:2013-08-08 22:14:53

标签: serialization servicestack

我想为基于ServiceStack的API实现魔术令牌。每当任何值与此特殊令牌匹配时,我想在我的应用程序中发出特殊操作的信号。发生此分配的理想位置是 SS处理了有线格式(JSV,JSON,SOAP等)和之后它将值映射到a上之后 .NET类型。目前,我想知道开始这样的事情的最好方法。这是我可以在Configure()中找到的东西吗?这是我必须覆盖和注入的东西吗?尽快提供此问题的任何协助或指示。

1 个答案:

答案 0 :(得分:1)

我不认为这是一个ServiceStack实现问题,而是你如何定义DTO。鉴于这个要求,据我所知,我会选择这样的东西:

 interface IOverridableDTO
 {
    Object overrideValue(Object value);
 }

 class BaseOverridableDTO : IOverridableDTO
 {
    bool doOverride {get(){return(//results of magic token check)};}

    public Object overrideValue(Object value)
    { if {doOverride} 
           return(null);  // or whatever the override needs to be
       return(value);
    }
 }

 class MyDTO : BaseOverridableDTO
 {
    // override the overrideValue() method, if necessary

    private int myDTOProperty;
    public int? MyDTOProperty {
         get() {return overrideValue((Object)myDTOProperty)}; 
         set(int value) {myDTOProperty = value;}
    }
 }

 // use as follows:
 void DoSomethingWithAnOverridableDTO(BaseOverridableDTO dtoObject)
 { ... }