我有一个我正在编写的服务,旨在供多个调用者使用,包括那些无法接收或解析XML或JSON的服务.
我知道可以使用原始流从服务响应中返回HTML,但我希望能够做的是返回XML,JSON或HTML中的一个,具体取决于客户端传递的Accepts-Type标头.
我可以使用单独的URL来完成它,但这正在取代已经具有良好定义的API层的系统.
有没有这样做的例子,或者是否有人知道管道的哪些部分需要扩展?
(附录):我已经了解了AutomaticFormatSelection并启用了它,但我想从单个端点支持所有三种(或更多)格式(HTML,JSON,XML等).
我有一个外部库,需要一个"XmlNode []"而不是XmlNodeList.有没有直接的方法来做到这一点,而无需迭代和转移每个节点?
我不想这样做:
XmlNode[] exportNodes = XmlNode[myNodeList.Count];
int i = 0;
foreach(XmlNode someNode in myNodeList) { exportNodes[i++] = someNode; }
Run Code Online (Sandbox Code Playgroud)
我在.NET 2.0中这样做,所以我需要一个没有linq的解决方案.
我现在是开发人员,过去几年我使用原型框架和OOP的实现,用于Javascript.我也使用过jquery和其他一些框架.
我一直在研究js如何工作以及与OOP有何不同,因为它是一种面向原型的语言.在我看来,实际上是一个伟大的概念,原型导向的语言.
给予正确的关注:
- 语言是如何使用的,因此更快,更高效,理论上更简单,更顺畅.
- 每个浏览器都有自己的javascript应该如何工作的实现,有时不可能在所有浏览器中使用简洁的代码,或者至少是大多数浏览器.
- 通常那些OOP框架(dojo.declare(),Js.Class,MooTools等)不仅适合做出好的工作,而且它们是跨浏览器.
我不禁想知道,是否值得开始使用面向javascript原型的RIA?或者我应该去Dojo.declare(),js.class或类似的?
我认为这是一个标准问题,可能之前已经提出但我无法得到确切的答案,所以发布问题.
问题是我们的服务器在linux机器上运行.我们通过窗口框上的浏览器访问服务器,将数据输入到字段中,该字段应该包含多行,用户可以通过在每行Abc Def GHI之后按回车键输入这些行
当这个输入字段(这是一个文本区域),在linux机器上读取时,我们想要根据新的行字符拆分数据.
我有三个问题.
传入数据是否包含"\ r \n"或"\n"
如果传入的数据确实包含"\ r \n",则linux line.separator属性(vm属性)对我不起作用,因为它会说"\n",因此可能在数据中留下"\ r".
如果数据中留有"\ r",如果我在Windows机器上打开文件,这是否意味着换行符?
最后有人能告诉我处理这个问题的标准方法吗?
我正在构建一个简单的代理,它将记录通过它传递的某些请求。代理不需要干扰通过它的流量(在项目的这一点上),因此我尝试在处理过程中尽可能少地解析原始请求/响应(请求和响应被推送)到要在代理外部记录的队列)。
我的示例工作正常,但无法可靠地判断“响应”何时完成,因此我的连接保持打开状态的时间超过了所需的时间。相关代码如下:
var request = getRequest(url);
byte[] buffer;
int bytesRead = 1;
var dataSent = false;
var timeoutTicks = DateTime.Now.AddMinutes(1).Ticks;
Console.WriteLine(" Sending data to address: {0}", url);
Console.WriteLine(" Waiting for response from host...");
using (var outboundStream = request.GetStream()) {
while (request.Connected && (DateTime.Now.Ticks < timeoutTicks)) {
while (outboundStream.DataAvailable) {
dataSent = true;
buffer = new byte[OUTPUT_BUFFER_SIZE];
bytesRead = outboundStream.Read(buffer, 0, OUTPUT_BUFFER_SIZE);
if (bytesRead > 0) { _clientSocket.Send(buffer, bytesRead, SocketFlags.None); }
Console.WriteLine(" pushed {0} bytes to requesting host...", _backBuffer.Length);
}
if …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它返回一个List<Dictionary<string, object>>where对象是标准类型(string,int等).
我需要花一点时间List<Dictionary<string, object>>并确保列表B中的所有条目都在列表A中表示(列表中的顺序无关紧要).
目前我的代码如下所示:
foreach(Dictionary<string, object> rowResult in A) {
foreach(Dictionary<string, object> rowCompare in B) {
foreach(string columnName in rowResult.Keys) {
// ... logic to compare columns
}
}
// ...logic to compare rows so we dont find the same row twice.
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来做到这一点?
我们不在乎找到rowResult中的所有行,但rowCompare中的所有行都必须是.它是确定以删除行比较或结果集进行迭代更加容易.
我的代码工作,它只是看起来复杂和脆弱.
我想创建一个类级装饰器,它自动向对象添加属性,包括适当的getter和setter方法以及一个后备变量.例如:
@autoproperty("foo", can_get=True, can_set=True, allow_null=False, default_value=0)
@autoproperty("baz", can_get=True, can_set=False, allow_null=True, default_value=0)
@autoproperty("bar")
class SomeNonTrivialClass(object):
def __init__(self):
#lots of stuff going on here
def discombobulate(self):
#this is obviously a very trivial example
local_foo = self.foo;
if (local_foo > 10):
raise RuntimeError("Foo can never be more than 10")
else:
#do whatever with foo
if __name__ == '__main__':
test = SomeNonTrivialClass()
test.foo = 5
test.discombobulate()
test.foo = 11
test.discombobulate()
Run Code Online (Sandbox Code Playgroud)
我经常发现自己创建了许多"半复杂"的getter/setter(它们可以只使用一个简单的属性来完成,但它们需要默认值和null保护.我希望能够指定一个装饰器来完成繁重的工作在类的新实例上创建属性.
如果我在这种方法中偏离基础,我对同样可行的方法持开放态度.
任何帮助,将不胜感激.
我正在使用python 3.X和python 2.7,所以在任何一个中工作的东西都是首选但不是必需的.
更新:我在我正在寻找的内容中添加了更多种类.一般来说,我需要能够创建很多这些简单的自动属性(ala C#auto-property,但具有更大的灵活性).我不一定要公开后备存储,但我确实想确保对实例化对象(不一定是类)的检查显示已创建的属性.
c# ×4
.net-2.0 ×1
http ×1
java ×1
javascript ×1
oop ×1
properties ×1
python ×1
python-2.7 ×1
python-3.x ×1
rest ×1
sockets ×1
tcpclient ×1
wcf ×1
xml ×1