Tag: servicestack

ServiceStack.Text序列化循环引用

我需要像这样序列化一个对象图: public class A { public B Link1 {get;set;} } public class B { public A Link2 {get;set;} } 这样json只获得两个实例,但再次正确反序列化。 例如,使用元ID或类似的东西。 我知道Json.NET中有一种方法如下所述: http : //note.harajuku-tech.org/serializing-circular-references-with-jsonnet with meta ids。 ServiceStack.Text Json Serializer中是否有类似的function? 否则,是否可以在ServiceStack使用Json.NET以及如何使用? 编辑: 为了说清楚,我要求提供实例引用,而不仅仅是相同类型。 一个例子可能是: [ { “$id”: “1”, “BroId”: 0, “Name”: “John”, “Bros”: [ { “$id”: “2”, “BroId”: 0, “Name”: “Jared”, “Bros”: [ { […]

如何自动将.NET函数调用映射到属性?

编辑:这最初用于1:1映射,但我发现我需要一个更复杂的递归映射,所以在这里发布了一个新问题: 如何使用Automapper函数调用递归地将实体映射到视图模型? 我正在尝试使用ServiceStack ConvertTo 方法将实体类函数一般映射到视图模型。 这映射所有相似的类型和属性名称并且工作正常,但我想找到一种方法将函数的结果映射到属性。 这是一些代码 实体示例: public class Item { public long Id {get; set;} public List GetProducts() { return Repository.GetAll(); } } ViewModel示例: public class ItemViewModel { public long Id {get;set;} public List Products {get; set;} } 理想的结果是使用map函数查看实体类以查找与返回类型匹配的方法,函数名称为“Get”+ Property name,然后执行它并将结果映射到视图模型。

在本地网络上自托管ServiceStack REST服务

我想知道是否有人可以提供帮助 – 我有一个本地网络(无线,我的电脑和连接到它的笔记本电脑),我尝试在其上托管使用ServiceStack开发的rest服务。 如果我在计算机上运行该应用程序(现在是一个控制台应用程序)并尝试使用机器IP或127.0.0.1访问该服务它工作正常 – 但如果我尝试从笔记本电脑访问它,使用计算机的IP它只是停止,从不调用REST服务。 我已经尝试关闭所有防火墙等,在管理模式下运行所有​​内容但仍然没有…我错过了一些简单的工作吗? 任何帮助深表感谢! 一些代码示例(My AppHost类inheritance自AppHostHttpListenerBase) restServiceToStart.Value.Init (); restServiceToStart.Value.Start (_HostUri); 对于我的主机,_HostUri设置为”http://my-ip-address:8080/”

Redis中的MVC4和ServiceStack会话

我有一个全新的MVC4项目,我在其上安装了ServiceStack MVC入门包(来自MyGET的4.0.12版本)来引导服务堆栈会话的使用。 在我的AppHost我的自定义会话配置为: Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] { new CredentialsAuthProvider(config) })); 为了测试目的,自定义会话看起来像这样: public class CustomUserSession : AuthUserSession { public string Hello { get; set; } } 并且ICacheClient注册为redis客户端: // register the message queue stuff var redisClients = config.Get(“redis-servers”, “redis.local:6379”).Split(‘,’); var redisFactory = new PooledRedisClientManager(redisClients); var mqHost = new RedisMqServer(redisFactory, retryCount: 2); container.Register(redisFactory); // […]

ServiceStack自定义用户身份validation

有没有人有这个问题中提出的如何使用int RefId的实际例子? 我正在尝试进行身份validation,但我需要将userAuth数据与我自己的用户表结合起来。 问题是我不知道如何将附加参数传递给“/ register”方法。 我想我正在寻找像“OnAddUser”这样的事件,这将允许我在混音中添加一些额外的参数。 我设法让用户注册工作非常快,非常简单。 也许问题是它太容易了? 我可以看到它的工作,但我无法弄清楚如何在它和数据库之间进行。 无论是字典方法还是RefId方法都可能对我有用,对我来说,使用它也不是很明显。 是否可以完全覆盖创建用户? 我找到了这段代码: MyServices.cs 看起来它正在创建用户代替“/ register”但是有一些其他文章表明你不能覆盖ServiceStack DTO,你必须使用默认表。

Redis Pub / Sub ServiceStack,取消线程

这可能是一个更通用的线程问题,我不确定。 但我有一个WPF应用程序订阅频道并侦听来自redis数据库的消息。 App.SubscriptionThread = new Thread(() => { _redisSubscription.SubscribeToChannels(“ChannelA”, “ChannelB”); }); App.SubscriptionThread.Start(); 一旦我开始这个,我不知道如何阻止它。 我尝试过的事情。 使用Thread.Abort 。 这显然不会阻止它,因为线程只是永远挂起(没有取消订阅)。 使用UI线程中的_redisSubscription.UnSubscribeFromAllChannels() 。 这也导致应用程序永远进入阻塞状态 使用Environment.Exit(0)强制关闭。 这个似乎可以解决问题。 不幸的是它也有……好……关闭我的应用程序的副作用。 如何停止聆听,我可以随意连接/重新连接? 我是通过在新线程中启动SubscribeToChannels来做错的吗?

ServiceStack OrmLite命令超时

使用IDbConnection.ExecuteSql时如何设置命令超时? IDbConnection db = ConnectionFactory.OpenDbConnection(); db.ExecuteSql(“…”); 如果我使用IDbCommand.ExecuteSql(见下文)方法,我可以设置命令超时,但我得到一堆关于弃用方法的警告。 IDbCommand comm = db.CreateCommand() comm.CommandTimeout = 240; comm.ExecuteSql(“…”);

Service Stack / MVC:“AppHostBase.Instance已设置”错误 – 但无法理解为什么/如何防止

我正在尝试将ServiceStack实现到我的MVC3项目中,并遵循以下教程: http : //www.servicestack.net/ServiceStack.Hello/ 我的Global.asax.cs现在看起来像: public class MvcApplication : System.Web.HttpApplication { public class Hello { public string Name { get; set; } } public class HelloResponse { public string Result { get; set; } } public class HelloService : IService { public object Execute(Hello request) { return new HelloResponse { Result = “Hello, ” + […]

ServiceStack Ormlite:System.InvalidProgramException JIT编译器遇到内部限制

嗨,我正在使用Ormlite运行ServiceStack,我遇到了这个错误。 以前它工作正常。 我不确定我改变了什么导致了这个错误。 我刚刚使用了一个简单的db.Select()调用,它会抛出此错误。 我尝试了各种方法,比如更新nuget包,清理和重建项目等,但它们都不起作用。 System.InvalidProgramException was caught _HResult=-2146233030 _message=JIT Compiler encountered an internal limitation. HResult=-2146233030 IsTransient=false Message=JIT Compiler encountered an internal limitation. Source=ServiceStack.OrmLite StackTrace: at ServiceStack.OrmLite.OrmLiteConfig.get_ExecFilter() at ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func`2 filter) at ServiceStack.OrmLite.ReadConnectionExtensions.Select[T](IDbConnection dbConn, Expression`1 predicate) InnerException: 任何人都可以建议可能出错的地方?

如何在ServiceStack中启用swagger?

我在介绍幻灯片中找到了提醒。 但没有其他地方。 是不是还没完成? 编辑:显然它在待办事项列表中。 有没有什么好方法可以自动记录RestAPI?