当我在客户端上创建DataContract的实例时,我需要让一些数据成员获得一些值.使用构造函数不会发生这种情况.我搜索了不同的论坛,发现我们必须使用[OnDeserializing]和[OnDeserialized]属性.这也行不通.有人可以在这里提出一些建议.另一种方法是在客户端的部分类中创建构造函数.我想避免这种情况.
请找到以下代码:
服务器端:Datacontract
[DataContract]
public class Account
{
private int mAccountId;
private string mAccountName;
public Account()
{
mAccountId = 5;
mAccountName = "ABC";
}
[OnDeserializing]
public void OnDeserializing(StreamingContext context)
{
mAccountId = 5;
mAccountName = "ABC";
}
[OnDeserialized]
public void OnDeserialized(StreamingContext context)
{
}
[DataMember]
public int AccountId
{
get
{
return mAccountId;
}
set
{
mAccountId = value;
}
}
[DataMember]
public string AccountName
{
get
{
return mAccountName;
}
set
{
mAccountName = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
客户端 …
以下是控制台应用程序的代码片段 -
class MyClass
{
public int GetDay(string data22)
{
int returnValue = 0;
if (string.Compare(data22,"THURSDAY") == 0) // true
{
returnValue = (int)DayOfWeek.Thursday;
}
if (data22 == "THURSDAY") //false
{
returnValue = (int)DayOfWeek.Thursday;
}
if (string.Equals(data22, "THURSDAY"))//false
{
returnValue = (int)DayOfWeek.Thursday;
}
return returnValue;
}
}
class Program
{
static void Main(string[] args)
{
string ExecutionDay = "?THURSDAY";
MyClass obj1 = new MyClass();
int MyDays = obj1.GetDay(ExecutionDay);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是 - 为什么第一次比较(string.compare)有效,而另外两种比较方法在这个特殊情况下不起作用?
如何使用MSBuild社区任务删除web.config中的节点.我可以使用XmlUpdate任务更新节点,但我无法删除节点.有任何想法吗.
我正在将具有其他类型和列表的许多属性的复杂对象序列化为JSON格式,但问题在于DateTime属性.我用JavascriptSerializer获得了纪元时间(而不是mm/dd/YYYY).
有没有什么方法可以获得mm/dd/YYYY:HH.MM.SS形式的日期时间而不修改我序列化的对象的类定义.
我需要一个用逗号分隔的四位数字的正则表达式("default"也可以是一个值).
例子:
6755
3452,8767,9865,8766,3454
7678,9876
1234,9867,6876,9865
default
注意:"default"
单独应匹配,但default,1234,7656
不应匹配.