0

我想知道是否可以使用公共类类型的模板化 DTO

RequestDTO<T, U>       where T : class        where U : class
{
    public T ContextRequest { get; set; }

    public U Request { get; set; }
}

并将其传递给我的服务请求...

我尝试了一个简单的类型示例

public class MyContext
{
//removed some fields  
    public int IdUser {get;set;}
}

public class MyType1Request
{
    public int IdRequest {get;set;}
}

public class MyType2Request
{
    public DateTime  SomeReallyImportantDate { get; set; }
}

public class UtenteService : Service
{
    public UtenteService()
    {
    }


    public string Any(RequestDTO<MyContext,MyType1Request> request)
    {
        return string.Format("User:{0} - IDRequest: {1}", request.ContextRequest.IdUser, request.Request.IDRequest);
    }

    public object Any(RequestDTO<MyContext, MyType2Request> request)
    {
        return string.Format("Utente:{0} - Data : {1}", request.ContextRequest.IDUtente, request.Request.DataLavorativa);
    }

但就我尝试访问该服务而言,我得到了这个

Sequence contains more than one matching element

另一种解决方案是在每个我的 DTO 请求对象中实现一个 IContext(可能还有 IContextExt IContextSpecificManner)到请求对象中......但我更喜欢使用第一种方法

谢谢

4

1 回答 1

0

AFAIK - 这应该工作。我在这里唯一缺少的是,您需要在 apphost 中注册路由,例如:

Routes.Add>("/Utente/{IdUser}/{IdRequest}")
于 2013-10-17T12:53:18.540 回答