小编Mar*_*ell的帖子

序列化继承自List <T>的对象

当我尝试序列化此集合时,name属性未序列化.

public class BCollection<T> : List<T> where T : B_Button
{       
   public string Name { get; set; }
}


BCollection<BB_Button> bc = new BCollection<B_Button>();

bc.Name = "Name";// Not Serialized!

bc.Add(new BB_Button { ID = "id1", Text = "sometext" });

JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(bc);
Run Code Online (Sandbox Code Playgroud)

只有当我创建一个新类(没有List<t>继承),并定义字符串Name属性和List<B_Button> bc = new List<B_Button>();属性时,我才能得到正确的结果.

c# serialization

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

什么是RFC 2396?

任何人都可以告诉我与NSURL有关的术语RFC 2396的含义吗?

url uri

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

为什么空python regexp的返回值匹配?

将空字符串传递给正则表达式对象时,搜索结果是匹配对象而非None.应该是没有,因为没有什么可以匹配的?

import re

m = re.search("", "some text")
if m is None:
    print "Returned None"
else:
    print "Return a match"
Run Code Online (Sandbox Code Playgroud)

顺便说一句,使用特殊符号^$产生相同的结果.

python regex

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

Hibernate SQLQuery绕过了hibernate会话缓存

我正在"事务化"一些广泛的数据库操作,我遇到了这个问题,如果我通过hibernate运行sql查询但不使用MQL方法,数据库的视图看起来不正确.具体来说,代码在大多数情况下以更合适的方式使用hibernate,但有些地方有人决定只执行sql.我不喜欢他们这样做,但在这一点上"它就是它".

我发现了一个解释,这似乎解释,但所有的例子都是WRT却越来越和管理代码交易.我们在整个类上使用@TransactionAttribute注释来更改此代码,并且发现了许多发生此行为的地方,但我并不完全相信这些解释适用于简单地包含在注释中的代码 - 我假设任何使用hibernate管理器的东西都依赖于会话中的对象缓存.

如果我通过不正确的术语来指代休眠中的概念等,请提前道歉.

jboss hibernate transactional

4
推荐指数
2
解决办法
4075
查看次数

如何限制html输入框以便它只接受数字输入?

我有一个html输入框,但只有数字数据才是数据.我该如何执行?

html

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

为什么没有使用==运算符(针对具体类型定义)?

我有一个列表定义为:

var Items = new List<IItem>();
Run Code Online (Sandbox Code Playgroud)

现在有许多不同的类具有该接口,其中一个是耗材.Consumable类也有==运算符重载.现在我有以下代码并且无法正常工作:

if(item1 == item2)
{
    //code...
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.我在==运算符重载中设置了一个断点,它永远不会达到它.当我进行逐行调试时,item1和item2都是Consumable类型,GetType都返回Consumable.我甚至尝试这个代码:

var temp = item1.GetType();
var temp2 = item2.GetType();
if (temp == temp2)
{
    //code...
}
Run Code Online (Sandbox Code Playgroud)

而这种平​​等的结果是真实的.现在如果我试试这个:

if(((Consumable)item1) == ((Consumable)item2))
{
    //code...
}
Run Code Online (Sandbox Code Playgroud)

这会触发==运算符重载的断点.如果逐行调试显示它已经认为它们都是可消耗的,为什么我必须手动转换变量?是因为我从IItems列表中提取它们吗?

c# operator-overloading

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

LINQ-to-SQL .ExecuteCommand()不适用于参数化对象名称

我对此感到有点沮丧,并希望有人能澄清发生了什么.

我想使用我的LINQ-to-SQL数据上下文以编程方式禁用外键约束.看起来这应该像以下一样简单:

context.ExecuteCommand( "ALTER TABLE {0} NOCHECK CONSTRAINT {1}", "MyTable", "FK_MyTable_MyOtherTable" );

不幸的是,这段代码因SQL错误"@ p0'附近的语法不正确"而遭到轰炸.

当我启动分析器时,我发现生成的SQL是:

exec sp_executesql 
N'ALTER TABLE @p0 NOCHECK CONSTRAINT @p1',
N'@p0 varchar(4000),@p1 varchar(4000)',
@p0=N'MyTable',
@p1=N'FK_MyTable_MyOtherTable'
Run Code Online (Sandbox Code Playgroud)

从我在SQL Books Online和LINQ-to-SQL文档中可以找到的所有内容中,这应该可行.

我改用了这个:

context.ExecuteCommand( String.Format( "ALTER TABLE {0} NOCHECK CONSTRAINT {1}", "MyTable", "FK_MyTable_MyOtherTable" ) );

它有效,但它有点失败了能够将参数传递给.ExecuteCommand()的目的.

那么这在LINQ-to-SQL,SQL Server中是一种什么样的怪癖,还是我真的很困惑?

任何见解将不胜感激!

.net c# t-sql sql-server-2008 linq-to-sql

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

如何使用LINQ在C#中以Datetime格式转换SQL中的Timestamp数据类型值?

我正在使用LINQ和我的数据库Tstamp fileld与Timestamp数据类型.现在我想通过使用LINQ查询从SQL获取数据,它返回System.Data.Linq.Binary数据类型中的Tstamp数据字段值.现在我想以Datetime格式转换这个二进制数据类型值,但是如何?

c# sql linq asp.net

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

NonSerialized无法工作

我是一个类的序列化,但我不能排除我班上的一些字段.

[Serializable]
public class DicData
{

    private GDicJson DeserializedGDicJson = new GDicJson();
    public UOCDicData BuiltDicData;                        

    [NonSerialized]
    public string CacheName = "";                          


}
Run Code Online (Sandbox Code Playgroud)

在我的预期中,公共字段CacheName未包含在我的*.xml反序列化输出中,但它包含在.xml文件中.

这里是序列化rutine.

XmlSerializer myXml = new XmlSerializer(typeof(DicData), "test");
myXml.Serialize(myFile, this); //note:a serializing perform in method of himself.
Run Code Online (Sandbox Code Playgroud)

c# xml serialization

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

JavaScript Object.keys()方法替代与IE8的兼容性

我在IE8中测试不支持Object方法时遇到错误.我正在使用Object.keys()

Object.keys(jsoncont).sort(function(a,b){
   return b.localeCompare(a)
 }).forEach(function(key) {
    var val = jsoncont[key];

   /* My code here */
 });
}
Run Code Online (Sandbox Code Playgroud)

IE8支持这种方法有一个很好的解决方法吗?

javascript internet-explorer-8

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