相关疑难解决方法(0)

获取ServiceStack以保留类型信息

我正在使用ServiceStack将一些对象序列化和反序列化为JSON.考虑这个例子:

public class Container
{
    public Animal Animal { get; set; }
}

public class Animal
{
}

public class Dog : Animal
{
    public void Speak() { Console.WriteLine("Woof!"); }
}

var container = new Container { Animal = new Dog() };
var json = JsonSerializer.SerializeToString(container);
var container2 = JsonSerializer.DeserializeFromString<Container>(json);

((Dog)container.Animal).Speak(); //Works
((Dog)container2.Animal).Speak(); //InvalidCastException
Run Code Online (Sandbox Code Playgroud)

最后一行抛出InvalidCastException,因为Animal字段被实例化为Animal类型,而不是Dog类型.有什么办法可以告诉ServiceStack保留这个特定实例属于Dog类型的信息吗?

.net c# serialization json servicestack

20
推荐指数
1
解决办法
9339
查看次数

Servicestack - 架构和重用POCO的一切

我参考ServiceStack文档注册使用POCO:

由于它促进了干净,可重复使用的代码,ServiceStack始终鼓励使用代码优先的POCO来处理所有事情.

即可以使用相同的POCO:
在请求和响应中DTO(在客户端和服务器上)
在JSON,JSV和CSV文本序列化器中
作为OrmLite,db4o和NHibernate中的数据模型
作为存储在Redis中的实体
作为存储在缓存和会话中的blob
在MQ的服务中删除并执行"

我喜欢servicestack以及使用它编写Web服务是多么容易.我试图了解如何最好地设置我的项目,而不是遇到任何问题.

具体来说,我正在与返回响应对象的架构理念作斗争,该对象也是一个数据模型(如SS所建议的).关注分离的想法在我内心过于根深蒂固.如果你对所有事情都使用相同的POCO,那么将不会遇到问题.例如,返回例如视图对象不是"更安全"吗?

architecture separation-of-concerns servicestack

20
推荐指数
1
解决办法
8168
查看次数

服务堆栈和Mocking,任何教程?

我目前正在评估ServiceStack(在.Net中创建基于休息的服务).其中一个感兴趣的领域是测试方面.我的休息服务将注入一些应用程序服务(目前使用Autofac).我需要的是一种机制来测试其余层并在我的应用层上定义期望(通过MOQ),所以我没有进行集成测试,而是单元测试这一层?

关于如何做到这一点的任何想法?

testing continuous-integration moq servicestack

11
推荐指数
1
解决办法
3044
查看次数

ServiceStack中是否需要ResponseStatus?

需要ResponseStatus吗?

维基说我们需要在响应DTO中有一个ResponseStatus属性来处理异常序列化:

https://github.com/ServiceStack/ServiceStack/wiki/Validation

但是,即使响应DTO中没有ResponseStatus属性,它看起来也会自动生成ResponseStatus.

我们需要ResponseStatus属性吗?

c# error-handling servicestack

11
推荐指数
1
解决办法
5103
查看次数

RPC与ServiceBus样式SOA

这些架构的优点和缺点是什么?

  1. 通过RPC我的意思是远程过程调用服务,如WCF,WebServices等.

  2. 然后在另一方面,有更多面向消息的框架,如MSMQ,NServiceBus,ServiceStack等.

  3. 然后是混合方法,例如WebAPI,它是某种远程活动记录模式(开箱即用它只支持非常有限数量的动词,如"Get","Put","Post"等).

无视,它是如何实际实现的(也就是说.我并不真正关心耐久性,事务等等,因为无论抽象如何都可以实现),这些抽象的优点和缺点是什么?

同样,请不要提供低级别的实施细节,我只想在声音架构,最佳模式和实践方面,甚至是最适合采用每种方式和原因的情况方面做出改变.

architecture wcf rpc nservicebus servicebus

4
推荐指数
1
解决办法
2092
查看次数

如何将多个请求DTO映射到单个路由

我一直在试验ServiceStack框架来开发一个简单的REST API.我正在尝试正确定义路由以处理我想要的不同URL时遇到麻烦.

我有一个简单的DomainModel类:

public class Student
{
    public int Id { get; set; } // unique
    public string Email { get; set; } // not unique

    // some other properties and business logic
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个REST服务来响应对以下URL的HTTP请求:

  • /students
    • GET返回所有学生
  • /students/123
    • GET返回Id = 123的学生
  • /students?id=123
    • GET返回Id = 123的学生
  • /students?email=foo@example.com
    • GET会返回所有匹配电子邮件的学生

我尝试使用以下请求DTO来完成此任务:

[Route("/students", "GET")]
public class GetAllStudents : IReturn<StudentList>
{
}

[Route("/students", "GET")] // I want this to be for /students?Id=
[Route("/students/{Id}", "GET")]
public class GetStudentById : IReturn<Student>
{
    public int Id …
Run Code Online (Sandbox Code Playgroud)

c# rest url-routing dto servicestack

3
推荐指数
1
解决办法
860
查看次数