我目前正在评估ServiceStack.我需要创建一堆RESTful webservices.我有初始代码运行,我很满意.我正在努力的是如何创建一个可以消耗POST(或PUT)HTTP请求的服务,该请求在其体内有数据.
我已经在ServiceStack论坛(http://groups.google.com/group/servicestack/browse_thread/thread/693145f0c3033795)上找到了这个帖子,并且我已经被引导去看看SO上的以下帖子(Json)将数据从控制台应用程序格式化到服务堆栈,但它确实没有用 - 它描述了如何创建请求,而不是如何创建可以使用此类HTTP请求的服务.
当我尝试传递其他数据时(在HTTP消息体中),我的servuce返回以下错误(HTTP 400):
<TaskResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
<ResponseStatus>
<ErrorCode>SerializationException</ErrorCode>
<Message>Could not deserialize 'application/xml' request using ServiceStackMVC.Task'
Error: System.Runtime.Serialization.SerializationException: Error in line 1 position 8.Expecting element 'Task' from namespace 'http://schemas.datacontract.org/2004/07/ServiceStackMVC'..
Encountered 'Element' with name 'Input', namespace ''.
at System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(XmlDictionaryReader reader)
at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(Stream stream)
at ServiceStack.Text.XmlSerializer.DeserializeFromStream(Type type, Stream stream) in C:\src\ServiceStack.Text\src\ServiceStack.Text\XmlSerializer.cs:line 76
at ServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.CreateContentTypeRequest(IHttpRequest httpReq, Type requestType, String contentType) in …Run Code Online (Sandbox Code Playgroud) 我们有一个遗留的服务器代码,我们想要放弃并使用ServiceStack开发新的代码.现有客户端不是用.Net编写的.我们根本不打算在客户端使用.Net.
客户端和服务器之间的数据正在使用XML和JSON进行交换 - 目前JSON仅用作响应的返回格式(仅适用于某些可用服务).XML格式是在几年前创建服务器解决方案的第一个版本时定义的.我们不想改变它.
我们如何使用ServiceStack构建新的RESTful Web服务,将数据序列化和反序列化为过去设计的格式(请注意,客户端不会用C#/ .Net编写).我们需要对两者进行控制:序列化和反序列化.是否可以使用DTO并仍然可以控制这些对象如何序列化/反序列化?
我使用 asdf + asdf-erlang 作为 Erlang 的版本管理器。一切似乎都运行良好,只是打字会erl -man mnesia导致No manual entry for mnesia.
我已经安装了 asdf-erlang github 页面上提到的所有依赖项。我还安装了 xsltproc 和 fop。不幸的是,位于下面的“man”文件夹~/.asdf/installs/erlang/18.3/lib/erlang/erts-73/是空的。我还没有发现在其他地方生成手册页。
我试图找到构建日志,但我也没有成功。
我使用的是 64 位 Ubuntu 16.10 和 16.04。
我只是想知道gamedev中有些东西是如何工作的:
我知道,性能实际上是至关重要的,所以仍然(并且我认为永远不会)因为它们的性能而无法使用托管语言/平台作为Java/.NET.但是......最近我在这里读过SO,即使创建游戏的人使用C++作为主要语言,他们实际上并不使用STL或Boost(或很多).认为它与性能有一些共同点,对吧?如果我错了,你能告诉我避免这些库的原因是什么(我认为让开发人员的生活更容易)?是因为许可(Boost)?那么EA的STL版本呢?其他工作室也制作自己的版本吗?
"接近金属"的游戏编程究竟如何?你是否越来越接近机器?你有时使用Assembly来进行关键的内部循环,或者C++实际上是你目前使用的最低抽象层吗?我认为在性能最重要的产品中,性能分析是非常非常常见的任务 - 但是你有时会被迫使用汇编来加速某些部分,或者好的C++是否"足够好"?
编辑:对不起,可能不太清楚,但我对有游戏行业经验的人的答案感兴趣.我对那些没有游戏开发商业经验的人给出的假设不感兴趣.我也对使用C#/ Java创建的一些小众游戏的例子不感兴趣.但是,如果你知道一个产品,看起来比FarCry2(公正的例子,但你最喜欢的现代伟大的游戏的名字在这里)更好,并写入完全用Java/.NET,并具有类似的性能FarCry2 ......不要犹豫,提这个产品!谢谢.
我只想将所有这些查询作为单个查询运行.
string[] arrs = new string[] { ".sds", ".pps", "tbt", "dd." };
string[] val= (from string i in arrs
where !i.StartsWith(".")
select "."+i).ToArray();
string[] val1 = (from i in arrs
where i.StartsWith(".")
select i).ToArray();
var p = val1.Union(val);//get value in single array.e
Run Code Online (Sandbox Code Playgroud)