草庐IT

字段中

全部标签

c# - 反序列化后初始化私有(private)只读字段

我需要在反序列化后初始化私有(private)只读字段。我有以下数据契约(Contract):[DataContract]publicclassItem{publicItem(){//ConstructornotcalledatDeserialization//becauseofFormatterServices.GetUninitializedObjectisused//sofieldwillnotbeinitializedbyconstructoratDeserialization_privateReadonlyField=newobject();}//Initialization

c# - 如何在 ASP.NET MVC Razor 中有条件地显示字段?

我对C#和ASP.NETMVCRazor还很陌生。如果该字段不为空,我想在我的View中显示该字段。代码@Html.LabelFor(model=>model.phone2)@Html.EditorFor(model=>model.phone2)@Html.ValidationMessageFor(model=>model.phone2)现在,我想先输出如果model.phone2is""行否则输出:如何使用ASP.NETMVCRazor执行此操作? 最佳答案 语法可能不完美,但试试这个:@{vartrClass=string.Is

c# - 为什么静态字段初始化发生在静态构造函数之前?

以下代码:staticvoidMain(string[]args){Console.WriteLine("0");stringh=Foo.X;Console.WriteLine("2");}publicstaticclassFoo{publicstaticstringX=((Func)delegate(stringg){Console.WriteLine(g);return(g);})("_aaa");staticFoo(){Console.WriteLine("ctor");}}将打印:0_aaactor2我知道beforefieldinit行为(有/没有静态构造函数等)。我不明白的

c# - 使用反射访问对象中结构的字段

我正在尝试使用包含struct的反射(最终在编译时未知)object。我已经达到TypedReference.MakeTypedReference但我碰壁了。这是我的类和结构publicclassMyObject{publicintId;publicMoneyAmount;}publicstructMoney{publicintVaule;publicstringCode;}这里是我如何尝试使用反射在MyObject中设置“金额”的“代码”。正如我上面提到的,我正在寻找一种在编译时不知道这些类型的解决方案(那太容易了!)这是我目前的代码(我使用[0]、[1]使代码更简单)varobj=

c# - 如果字段的顺序不同,为什么编译器会为匿名类型生成不同的类

我考虑过两种情况:vara=new{a=5};varb=new{a=6};Console.WriteLine(a.GetType()==b.GetType());//TrueIdeone:http://ideone.com/F8QwHY和:vara=new{a=5,b=7};varb=new{b=7,a=6};Console.WriteLine(a.GetType()==b.GetType());//FalseIdeone:http://ideone.com/hDTcxX问题是为什么字段顺序真的很重要?这是否有任何原因,或者仅仅是因为它是(这就是设计)。如果原因只是匿名类型不应该以这种

c# - 如何确定 Linq-To-Sql 对象中更改了哪些字段

我有一个linq-to-sql数据库,我想在其中记录对实体所做的一些更改。现在,我正在通过读取DataContext.GetChangeSet().Updates属性获取更新的实体,但这并没有为我提供来自已更改实体的字段。有没有办法知道更新的实体中哪些字段被修改了??谢谢 最佳答案 DataTable有一个方法GetModifiedMembers,它将返回一个成员列表,这些成员已针对指定的实体实例进行了更改。DataClasses1DataContextcontext;Class1instance=context.GetChange

c# - 如何在使用 JSON.Net 序列化期间有条件地忽略字段和属性?

如何使用JSON.Net在序列化过程中有条件地忽略字段和属性?我无法从JsonIgnoreAttribute继承,因为它是一个sealed类。我该怎么办? 最佳答案 您可以使用JSON.NET的ShouldSerialize语法。JSON.NET网站上有一个很好的例子:http://www.newtonsoft.com/json/help/html/ConditionalProperties.htmpublicclassEmployee{publicstringName{get;set;}publicEmployeeManager{

c# - 为什么可以通过ref参数修改readonly字段?

考虑:classFoo{privatereadonlystring_value;publicFoo(){Bar(ref_value);}privatevoidBar(refstringvalue){value="helloworld";}publicstringValue{get{return_value;}}}//...varfoo=newFoo();Console.WriteLine(foo.Value);//"helloworld"这如何编译,仍然有效?我不应该能够在构造函数之外为_value字段分配不同的值,因为它被标记为readonly。但是,通过ref传递给方法,确实可以操

c# - 匿名委托(delegate)中捕获的私有(private)字段

classA{publiceventEventHandlerAEvent;}classB{privateA_foo;privateint_bar;publicvoidAttachToAEvent(){_foo.AEvent+=delegate(){...UseBar(_bar);...}}}由于delegate捕获变量this._bar,它是否隐含地持有B的实例?B的实例是否会通过事件处理程序引用并由A的实例捕获变量?如果_bar是AttachToAEvent方法的局部变量,会有不同吗?因为在我的例子中,A的实例比B的实例生命周期长得多并且小得多,我担心会导致“内存泄漏”这样做。

c# - 使用数据注释标记字段 "Read Only"

我正在尝试将ID字段设置为只读。它是数据库中的一个身份字段,因此用户不会设置它。然而,他们愿意看到它。当分配给DataForm时,我遗漏了什么仍然允许编辑该值。publicclassStatusChoice:BindableBase{privateintid;[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)][Editable(false,AllowInitialValue=false)]publicintID{get{returnid;}set{id=value;OnPropertyChanged();}}}