问题列表 - 第26719页

C#如何在Web服务中返回我的基类

我有一辆Car和派生的SportsCar:Car这样的
东西:

public class Car
{
    public int TopSpeed{ get; set; }
}


public class SportsCar : Car
{
    public string GirlFriend { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个Web服务,返回汽车的方法,即:

[WebMethod]
public Car GetCar()
{
    return new Car() { TopSpeed = 100 };
}
Run Code Online (Sandbox Code Playgroud)

它返回:

<Car>
<TopSpeed>100</TopSpeed>
</Car>
Run Code Online (Sandbox Code Playgroud)

我有另一种方法也返回这样的汽车:

[WebMethod]
public Car GetMyCar()
{
    Car mycar = new SportsCar() { GirlFriend = "JLo", TopSpeed = 300 };
    return mycar;
}
Run Code Online (Sandbox Code Playgroud)

它编译很好和一切,但在调用它时我得到:
System.InvalidOperationException:生成XML文档时出错.---> System.InvalidOperationException:不期望wsBaseDerived.SportsCar类型.使用XmlInclude或SoapInclude属性指定静态未知的类型.

我觉得奇怪的是,因为mycar是一辆汽车所以它不能将其序列化为直车.

在WebMethod上添加XmlInclude可以消除错误:

[WebMethod]
[XmlInclude(typeof(SportsCar))]
public Car GetMyCar()
{
    Car …
Run Code Online (Sandbox Code Playgroud)

c# serialization web-services derived base

6
推荐指数
1
解决办法
4884
查看次数

如何通过调用反射方法来检测何时修改属性

我有以下课程

public class MyClass {
   private int myAttr;

   public void setAttr(int a) { 
      myAttr = a; 
      Thread.dumpStack();
   }
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以检测到任何修改的尝试myAttr.好吧,几乎任何.当有人myAttr使用Field.set()方法修改时,它不起作用.如何捕获Java反射用法?

java reflection

5
推荐指数
1
解决办法
147
查看次数

动态调用函数 - Python

我有一个功能列表......例如

def filter_bunnies(pets): ...

def filter_turtles(pets): ...

def filter_narwhals(pets): ...
Run Code Online (Sandbox Code Playgroud)

有没有办法通过使用表示其名称的字符串来调用这些函数?

例如

'filter_bunnies', 'filter_turtles', 'filter_narwhals'
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
1
解决办法
3039
查看次数

数据聚合mongodb vs mysql

我目前正在研究后端,以用于具有严格数据聚合要求的项目.主要项目要求如下.

  1. 为每个用户存储数百万条记录.用户每年可能有超过100万个条目,因此即使有100个用户,我们每年也会谈到1亿个条目.

  2. 必须即时执行这些条目的数据聚合.用户需要能够通过大量可用过滤器过滤条目,然后显示摘要(总计,平均值等)和结果图表.显然,我不能预先计算任何聚合结果,因为过滤器组合(以及结果集)是巨大的.

  3. 用户只能访问自己的数据,但如果可以为所有数据计算匿名统计数据,那就太好了.

  4. 数据大部分时间都是批量生产.例如,用户将每天上传数据,它可能会有3000条记录.在某些更高版本中,可能存在自动程序,例如每100分钟以较小批量上传100个项目.

我做了一个简单的测试,创建一个包含100万行的表,并在mongodb和mysql中执行1列的简单总和,性能差异很大.我不记得确切的数字,但它像mysql = 200ms,mongodb = 20秒.

我也用couchdb进行了测试,效果更差.

看起来很有希望的速度是cassandra,当我第一次发现它时,我非常热情.但是文档很少,我没有找到关于如何对数据执行求和和其他聚合函数的任何可靠示例.那可能吗 ?

从我的测试(也许我做错了)看来,当前的性能不可能将mongodb用于这样的项目,尽管自动分片功能似乎非常适合它.

有没有人有mongodb数据聚合的经验,或者有任何可能对项目实施有帮助的见解?

谢谢,迪米特里斯

mysql mongodb

10
推荐指数
1
解决办法
4388
查看次数

如何在网站中实现移动内容/文本.在asp.net中

如何在网站中实现移动内容/文本,如选框.在asp.net中.

我的数据集中有值.数据集值必须像div一样显示在div中...

javascript c# asp.net

7
推荐指数
1
解决办法
7134
查看次数

List.ForEach中的lambda会导致内存泄漏和性能问题吗?

我有一个问题,我可以使用这样的东西解决

sortedElements.ForEach((XElement el) => PrintXElementName(el,i++));
Run Code Online (Sandbox Code Playgroud)

这意味着我在ForEach中有一个允许使用int i等参数的lambda.

我喜欢这样做的方式,但我读到某处匿名方法和lambda委托会导致大量内存泄漏,因为每次执行lambda时都会实例化某些内容但不会被释放.这样的事情.

你能告诉我这种情况是否属实,如果是这样的话?

c# foreach lambda list

0
推荐指数
1
解决办法
690
查看次数

使用servlet下载大文件

我正在使用Apache Tomcat Server 6和Java 1.6,并试图将mp3大文件写入ServletOutputStream,以供用户下载。目前文件大小为50-750MB。

较小的文件不会引起太大的问题,但是较大的文件会导致套接字异常中断。

File fileMp3 = new File(objDownloadSong.getStrSongFolder() + "/" + strSongIdName);
FileInputStream fis = new FileInputStream(fileMp3);
response.setContentType("audio/mpeg");
response.setHeader("Content-Disposition", "attachment; filename=\"" + strSongName + ".mp3\";");
response.setContentLength((int) fileMp3.length());
OutputStream os = response.getOutputStream();

try {
    int byteRead = 0;
    while ((byteRead = fis.read()) != -1) {
        os.write(byteRead);
    }
    os.flush();
} catch (Exception excp) {
    downloadComplete = "-1";
    excp.printStackTrace();
} finally {
    os.close();
    fis.close();
}
Run Code Online (Sandbox Code Playgroud)

java file-io servlets

0
推荐指数
1
解决办法
1万
查看次数

为什么使用缓冲区来读/写Streams

在阅读有关读取和写入Streams的各种问题后,所有各种答案都将此类定义为正确的方法:

private void CopyStream(Stream input, Stream output)
{
   byte[] buffer = new byte[16 * 1024];
   int read;
   while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
   {
      output.Write(buffer, 0, read);
   } 
}
Run Code Online (Sandbox Code Playgroud)

两个问题:

为什么要读写这些较小的块?

使用的缓冲区大小有什么意义?

.net language-agnostic stream

10
推荐指数
1
解决办法
1989
查看次数

使用Java中的XPath和命名空间解析XML

你能帮助我调整这段代码,以便它能够解析XML吗?如果我删除XML命名空间,它可以工作:

String webXmlContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                       "<foo xmlns=\"http://foo.bar/boo\"><bar>baz</bar></foo>";
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(new StringInputStream(webXmlContent));

NamespaceContextImpl namespaceContext = new NamespaceContextImpl();
namespaceContext.startPrefixMapping("foo", "http://www.w3.org/2001/XMLSchema-instance");
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(namespaceContext);

XPathExpression expr = xpath.compile("/foo/bar");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
System.out.println("Got " + nodes.getLength() + " nodes");
Run Code Online (Sandbox Code Playgroud)

java xml xpath

5
推荐指数
1
解决办法
5360
查看次数

打印出变量名称objective-C

继续上一个问题:Obj-C中的日志方法名称.我只是想知道是否有办法打印变量名称.例如:

NSString *name = "vodkhang";
NCLog(@"%@", name);
Run Code Online (Sandbox Code Playgroud)

我希望输出应该是:

name: vodkhang
Run Code Online (Sandbox Code Playgroud)

只是总结一下上一篇文章,目前我可以在打电话时打印出班级名称,方法名称和行号

NCLog(@"Hello World");
<ApplicationDelegate:applicationDidFinishLaunching:10>Hello world
Run Code Online (Sandbox Code Playgroud)

#define NCLog(s, ...) NSLog(@"<%@:%d> %@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
Run Code Online (Sandbox Code Playgroud)

iphone debugging objective-c

15
推荐指数
1
解决办法
4675
查看次数