问题列表 - 第2965页

过时的属性导致XmlSerialization忽略属性

我正在重构一些序列化为XML的对象,但需要保留一些属性以实现向后兼容性,我有一个方法可以将旧对象转换为新对象并使过时属性为空.我想使用该Obsolete属性告诉其他开发人员不要使用此属性,但它导致该属性被忽略XmlSerializer.

相似代码:

[Serializable]
public class MySerializableObject
{
    private MyObject _oldObject;
    private MyObject _anotherOldObject;

    private MyObject _newBetterObject;

    [Obsolete("Use new properties in NewBetterObject to prevent duplication")]
    public MyObject OldObject
    {
      get { return _oldObject; }
      set { _oldObject = value; }
    }

    [Obsolete("Use new properties in NewBetterObject to prevent duplication")]
    public MyObject AnotherOldObject
    {
      get { return _anotherOldObject; }
      set { _anotherOldObject = value; }
    }

    public MyObject NewBetterObject
    {
      get { return _anotherOldObject; }
      set { _anotherOldObject …
Run Code Online (Sandbox Code Playgroud)

c# attributes xml-serialization .net-2.0

52
推荐指数
2
解决办法
9205
查看次数

使用具有不同编译器版本的C++ DLL

这个问题与"如何跨VS版本制作一致的dll二进制文件"有关.

  • 我们有使用VC6构建的应用程序和DLL以及使用VC9构建的新应用程序.VC9-app必须使用VC6编译的DLL,其中大部分用C语言编写,一个用C++编写.
  • 由于名称修饰/修改问题,C++ lib存在问题.
  • 用VC9编译所有内容目前不是一个选项,因为似乎有一些副作用.解决这些问题非常耗时.
  • 我可以修改C ​​++库,但必须用VC6编译.
  • C++ lib本质上是另一个C库的OO包装器.VC9-app使用一些静态函数以及一些非静态函数.

虽然静态函数可以用类似的东西来处理

// Header file
class DLL_API Foo
{
    int init();
}

extern "C"
{
    int DLL_API Foo_init();
}

// Implementation file
int Foo_init()
{
    return Foo::init();
}
Run Code Online (Sandbox Code Playgroud)

使用非静态方法并不容易.

据我了解,Chris Becke建议使用类似COM的接口对我没有帮助,因为接口成员名称仍然会被装饰,因此无法从使用不同编译器创建的二进制文件中访问.我在那儿吗?

唯一的解决方案是使用处理程序写一个C风格的DLL接口到对象还是我错过了什么?在这种情况下,我想,我可能会更少的努力直接使用包装的C库.

c++ windows visual-c++-6 visual-c++-2008 name-decoration

6
推荐指数
2
解决办法
6852
查看次数

如何调整html canvas元素的大小?

我在html中静态定义了一个宽度和高度的canvas元素.如果我尝试使用JavaScript动态调整大小(设置新的宽度和高度 - 无论是在画布的属性上还是通过样式属性),我在Firefox中都会出现以下错误:

未捕获的异常:[异常......"WrappedNative原型对象上的非法操作"nsresult:"0x8057000c(NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)"location:"JS frame :: file:///home/russh/Desktop/test.html :: onclick ::第1行"数据:否]

是否可以调整此元素的大小,还是必须销毁它并动态创建新元素?

html javascript dhtml canvas

46
推荐指数
4
解决办法
15万
查看次数

何时初始化匿名命名空间数据?

我一直在使用匿名命名空间来存储本地数据和函数,并想知道数据何时被初始化?是应用程序以与静态数据相同的方式启动还是依赖于编译器?例如:

// foo.cpp
#include "foo.h"

namespace {

const int SOME_VALUE = 42;

}

void foo::SomeFunc(int n)
{
    if (n == SOME_VALUE)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

问题产生于使一些代码线程安全.在上面的例子中,我需要确定SOME_VALUE在第一次调用SomeFunc之前初始化.

c++ namespaces

4
推荐指数
1
解决办法
3964
查看次数

通过PHP解析html <script>并不完全正常

我发现这很奇怪,一定是我做错了,但仍然......我正在使用PHP和TPL文件的页面上工作.在我的TPL文件中,如果需要,页脚中有一些额外的行.

例如,使用Javascript进行表单检查.

所以在PHP中我这样做了:

$foot = "<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>";
Run Code Online (Sandbox Code Playgroud)

然后解析$ foot变量,HTML中的结果如下:

<script type="text/javascript">if(document.getElementById)</script>
Run Code Online (Sandbox Code Playgroud)

所以{loadEvents();}失踪了.

有没有人看到我在这里失踪的东西......我真的没有找到它.我忘了逃避角色什么的吗?

javascript php template-engine smarty

3
推荐指数
1
解决办法
560
查看次数

MySql索引填充因子?

在MySql中创建索引时如何指定填充因子?

mysql indexing fillfactor

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

一个J2ME lisp?

如果在J2ME上运行的lisp存在,那么在移动设备(而不是FOR移动设备)上编程似乎会更容易.

你知道任何(最好是开源)lisp/smalltalk应用程序吗?我在网上搜索,找不到工作的J2ME lisp.将它移植到J2ME是否如此困难?

谢谢

lisp smalltalk java-me

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

有没有办法有条件地运行Visual Studio Post Build Steps

我们要寻找的是:在编译相同的配置时,比如Release | Win32,有时候只能进行后置步骤.就像,如果我在开发机器上执行所有后期构建步骤,或者如果我在构建服务器上,则不要执行它们.或者实现这一目标的唯一方法是实现新配置?

评论者:感谢您的想法,我们不想使用脚本,因为它们将是一个需要维护的东西,并且在这一点上转向MSBuild proj文件也会很麻烦.谢谢你的尝试.

visual-studio

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

如何将数组从Asp.net服务器端传递到客户端的Javascript函数

如何将我在服务器端创建的数组传递到客户端以供Javascript操作?

任何伪代码都会有所帮助

javascript asp.net

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

C++是否允许函数的默认返回类型?

在C中,以下恐怖是有效的:

myFunc()
{
  return 42;  // return type defaults to int.
}
Run Code Online (Sandbox Code Playgroud)

但是,在C++中呢?无论如何我都找不到它的参考...

我的编译器(Codegear C++ Builder 2007)目前在没有警告的情况下接受它,但我有评论说这 C++中的错误.

c c++

6
推荐指数
3
解决办法
4727
查看次数