Tag: servicestack

ServiceStack中是否需要ResponseStatus?

需要ResponseStatus吗? 维基说我们需要在响应DTO中有一个ResponseStatus属性来处理exception序列化: https://github.com/ServiceStack/ServiceStack/wiki/Validation 但是,即使响应DTO中没有ResponseStatus属性,也会自动生成ResponseStatus。 我们需要ResponseStatus属性吗?

ServiceStack.Text如何将类序列化为JSon

刚刚下载了ServiceStack.Text以在我的ASP.NET中使用它。 我有许多属性的类,并希望将其中五个(字符串,整数,二进制)序列化为JSON。 任何人都可以发布简单的例子如何从我的类创建JSon对象?

使用ServiceStack上传图像文件

我们需要使用ServiceStack API上传图像。 我知道两种可能的方法: 1)使用JSON对象上传文件(使用BASE64字符串)。 2)使用“multipart / form-data” 有没有其他方法使用ServiceStack上传文件? 哪种方法在最佳实践方面更好?

ServiceStack Runner可以获取请求正文吗?

是否可以在没有重大hackery的情况下在Runner中获取ServiceStack请求的原始请求主体? 我正在编写一个oauth服务提供程序,使用新的API(Service and Runner)在ServiceStack上运行。 由于OAuth签名的工作方式,我需要为每个请求获取原始请求正文。 OAuth保护层已添加到Runner中,因此无效的OAuth请求可以轻松返回空/错误响应,而无需Service类中的任何样板或子类化特殊的“OAuthService”类。

ServiceStack – 有没有办法强制所有序列化日期使用特定的DateTimeKind?

我有一个像这样的POCO: public class BlogEntry { public string Title { get; set; } public DateTime Date { get; set; } } 大部分时间它都是从Entity Framework中提取的,但它可以并且将在Entity Framework之外使用。 来自EF的日期的DateTimeKind是未指定的,从我读的是正常的。 当我在Redis中缓存此POCO(使用ServiceStack Redis客户端)时,它返回DateTimeKind of Local。 因此返回的对象存在抖动。 第一遍(未缓存)具有ISO-8061,没有偏移(DateTimeKind.Unspecified)。 第二遍(缓存)是带有偏移的ISO-8061(来自Redis with DateTimeKind.Local)。 是否有任何方法可以强制ServiceStack JSON序列化程序始终将日期解释为给定的DateTimeKind? (我知道有一个“JsConfig.AppendUtcOffset”属性,但无论是真还是假,价值观永远不会改变?) 或者在我的类型化RedisClient的反序列化过程中的某个地方使DateTimeKind本地? 我可以手动更改我的POCO来强制执行DateTimeKind – 这是有效的 – 但我希望有一些不易出错的东西。

重新连接到asp.net MVC4应用程序中的Servicestack会话

我有一个asp.net mvc4 Web应用程序,它使用C#编写的API消耗数据数据,并在Apache / mod_mono的Linux机器上托管 客户端应用程序是用C#/ asp.net编写的 – 它运行在不同的Web服务器上,也就是Linux / Apache / mod_mono。 我不确定这些细节在这种情况下是否重要,但我认为任何背景都可能有所帮助。 导致这个问题的问题: AppHostBase实例未设置 – 帮助我更加了解这一切是如何组合在一起的。 我相信我现在应该问的正确问题是: 一旦我在servicestack中创建会话(在API服务器上),我该如何正确地重新连接它? 根据之前问题的答案,我在客户端应用程序的auth控制器中使用了这段代码: var authService = AppHostBase.Resolve(); authService.RequestContext = System.Web.HttpContext.Current.ToRequestContext(); var AuthResponse = authService.Authenticate(new Auth { provider = “credentials”, UserName = user.user_id, Password = user.password, RememberMe = true }); 这将返回一个ResolutionException: 无法解析ServiceStack.ServiceInterface.Auth.AuthService类型所需的依赖项。 在让客户端在asp.net应用程序中工作时,我可能会缺少一些简单的东西吗? 如果问题太模糊,我会道歉,并乐意提供更多信息。 更新: 这是AuthController – 请原谅这个混乱,自从我上一篇文章以来,我一直在尝试一些事情: […]

如何在ServiceStack.net中使用Funq注册多个IDbConnectionFactory实例

您将如何在Funq中注册不同的IDbConnectionFactory实例,然后直接在您的服务中访问它们? 命名实例在某种程度上发挥作用? 这是跨服务使用不同数据库时最好的方法吗? 谢谢! 编辑: 一个例子 ;)。 我可能会离开这里因为我对IoC很新,但是比如说我有2个独立的数据库连接,我想注入。 在ServiceStack中,这是在Global.asax中完成的。 container.Register(c => new OrmLiteConnectionFactory(@”Connection String 1″, SqlServerOrmLiteDialectProvider.Instance)); container.Register(c => new OrmLiteConnectionFactory(@”Connection String 2″, SqlServerOrmLiteDialectProvider.Instance)); 这两个似乎都注入了骄傲的海鲂。 然后通过以下方式在服务端自动访问它们: public IDbConnectionFactory DbFactory { get; set; } 在这种情况下,它似乎给了我第一个注册的。 如何在服务端访问特定的访问权限? 希望这会让它更加清晰。 这是ServiceStack.Examples中一个完整的示例,仅使用1个IDbConnectionFactory: Movies Rest

如何使用ServiceStack实现删除服务调用

我有几个与使用ServiceStack的REST服务实现相关的问题。 对于GET操作,我将请求DTO定义如下: [Route(“/Customer/{ID}”, Verbs = “GET”)] public class GetCustomer : IReturn { …. …. } 这里“GetCustomer”是请求DTO,“GetCustomerResponse”是响应DTO。 但是对于PUT / POST / DELETE操作,我只需要知道操作是否成功提交,如果’不’那么什么是exception。 那么对于POST / PUT / DELETE我的请求dto定义应该是什么? 它应该使用如下所示的IReturnVoid吗? [Route(“/Customer/{ID}”, Verbs = “DELETE”)] public class DeleteCustomer : IReturnVoid { …. …. } 如果我必须使用IReturnVoid,那么我如何检索在提交我的操作时可能发生的任何exception信息? 在服务堆栈的error handling文档中,它是写的,我在下面引用 错误响应类型 抛出exception时返回的错误响应取决于是否存在常规命名的{RequestDto}响应DTO。 如果存在: 无论服务方法的响应类型如何,都会返回{RequestDto}响应。 如果{RequestDto}响应DTO具有ResponseStatus属性,则会填充它,否则将不返回ResponseStatus。 (如果您使用[DataContract] / [DataMember]属性修饰了{ResponseDto} Response类和属性,则还需要对ResponseStatus进行修饰以进行填充。 否则,如果不是: 返回一个通用的ErrorResponse,其中包含一个填充的ResponseStatus属性。 服务客户端透明地处理不同的错误响应类型,对于无模式格式(如JSON […]

ServiceStack剃刀默认页面

说我有2页 /NotADefault.cshtml /Views/Default.cshtml 问题1。 现在我运行它,无论我怎么命名,页面A总是被隐式调用作为启动默认页面。 只有在我明确调用localhost / View / Default时才会调用Page B 如何将页面B (View文件夹中的页面)设为我的默认页面? 问题2。 我还有NotADefaultService.cs和DefaultService.cs 。 我在后面为每个页面提供了一个Service类。 但是,当调用页面A时, NotADefaultService.cs永远不会被调用。 调用页面B时只调用DefaultService.cs … 我的观察是,只有View文件夹中的页面才能使其后端服务类正常工作。 在View文件夹之外,它不起作用。 结合Q1和Q2。 我如何能: 选项1.让后端服务类在“View”文件夹外的/ root下工作? 要么 选项2.在启动时指定/View/Default.schtml作为我的默认设置,可以命中服务类吗?