【c# – 尝试从键值对列表构建对象时有什么好的设计?】教程文章相关的互联网学习教程文章

c# – 为什么在foreach for XmlNode中使用的var不推导出实际类型,只推导出对象?【代码】

让cls为XmlNode类型 以下语句允许我访问子节点:foreach (XmlNode child in cls.ChildNodes)现在当我尝试使用var:foreach (var child in cls.ChildNodes)那么子类型不是XmlNode,只是对象.我不能使用child.NodeType,编译器说:object’ does not contain a definition for ‘NodeType为什么是这样?解决方法:ChildNodes的类型为XmlNodeList,定义为public abstract class XmlNodeList : IEnumerable, IDisposable它的枚举器返回一个...

c# – 通过仅在基类中定义serialize方法来序列化具有继承的对象?【代码】

我目前正在用C#进行游戏(用于研究目的).我正在尝试实现加载/保存功能,其中包括将游戏的每个数据保存在文件中,并且用户可以重新加载之后保存的游戏. 在游戏中,每个玩家都有一个国家级,每个国家都从国家继承.目前,我只在基类Nation上应用ISerializable接口,因为子类只有方法覆盖而没有新的属性来序列化.[Serializable()] public abstract class Nation : ISerializable {public void GetObjectData(SerializationInfo info, Streami...

c# – 更新空对象属性的更优雅方式【代码】

我目前正在编写一个方法来填充对象的缺失属性.该对象已从数据库中设置了一些值,但如果有任何值为空,则它将转到备用数据源(长篇故事). 这意味着我的代码有点像下面的代码片段if(string.IsNullOrEmpty(myObject.FieldA))myObject.FieldA = UpdateFromMethod("FieldA"); if(string.IsNullOrEmpty(myObject.FieldB))myObject.FieldB = UpdateFromMethod("FieldB"); if(string.IsNullOrEmpty(myObject.FieldC))myObject.FieldC = Update...

c# – 使用LINQ在类中查找对象【代码】

我想返回具有我发送的配置文件ID的项目.所以为了做到这一点,我需要遍历所有项目 – > WebProproperties – >轮廓.类结构在问题的最后. 我宁愿使用LINQ而不是创建嵌套的foreach.我一直试图让这个工作超过一个小时.我被卡住了. 我的第一个想法是简单地使用在哪里.但这不起作用,因为你需要在另一方需要相同的东西.this.Accounts.items.Where(a => a.webProperties.Where(b => b.profiles.Where(c => c.id == pSearchString)) ).First...

c# – FluentAssertions:匹配集合的每个对象【代码】

如何检查集合的每个对象是否符合给定的谓词?例如:检查每个项目(来自给定集合)它是否与给定谓词(MyPredicate)匹配.代码应该看起来像这样:collection.Should().AllMatch(item => MyPredicate(item));是这样的东西还是我必须自己写?解决方法:看起来像Fluent Assertions 2.x不支持这种情况.使用Fluent Assertions 3.x可以使用:collection.Should().OnlyContain(predicate)

c# – 将复杂的JSON提交给MVC控制器.如何命名嵌套对象?【代码】

我有一个控制器设置,期望将此对象发布到它:public class PrintJob {public string BarTenderFile { get; set; }public string PrinterName { get; set; }public List<TagLabel> Queue { get; set; } }public class TagLabel {public string Season { get; set; }public string STSStyle { get; set; }public string VStyle { get; set; }public string ColorCode { get; set; }public int CODI { get; set; }public string SizeD...

c# – 使用Reflection动态地向Entity Framework添加对象【代码】

在下面的代码中,domainObject的类型各不相同(但以DO结尾,然后我修剪它以获得相应的表名).拥有表的名称及其类型,我想更新一个现有对象 – 它的名称与由于EF的tableName相同 – 在数据库中使用来自domainObject的新属性值.因此,我必须首先在表中找到具有相同ID的POCO来覆盖它.这是到目前为止的代码:public void Update(object domainObject) {Type type = domainObject.GetType();string tableName = type.Name.Substring(0, type.N...

c# – 如何合并两个不同对象的列表?【代码】

使用C#和LINQ,如何合并两个不同对象的列表,比如研讨会和会议?它们有一些共同的和一些不同的字段/属性,并且不共享唯一的id.class Seminar {int id,DateTime joinDate,string name }class Conference {Guid confNumber,DateTime joinDateType type }我有一个列表:List<Seminar> List<Conference>我需要将它们合并到一个超级列表中:List<Object>代码片段会有很大的帮助.解决方法:以下代码对我来说很好,如果这是你对Merge的定义 一个...

c# – 2个项目中需要的ViewModel对象Core和Web – 循环Dependancies【代码】

我有一个MVC应用程序,包含3个项目Core,Repository&网页. 参考文献如下: >核心参考资料库> Web引用Core 我的ViewModel位于Web项目中,由控制器使用. 在Core项目中,我有一个电子邮件类,我希望将绑定的ViewModel对象作为参数接收(发送记录的HTML电子邮件). 问题是我不能将该对象用作email方法中的参数,因为它将创建循环依赖. 有什么想法我怎么能同时在2个项目中拥有该对象?解决方法:这听起来像视图模型持有域信息,它不应该这样做.具体...

c# – 无法让Ninject在Request Scope中处理对象【代码】

无论我做什么,我似乎无法让Ninject在带有Web API的ASP.NET MVC应用程序中处理请求范围内的对象. 我在做什么: >使用Visual Studio 2013创建新的ASP.NET Web应用程序.我选择MVC模板并向其添加Web API(默认情况下,它还包含ASP.NET标识)>我通过nuget安装Ninject.MVC5包(install-package Ninject.MVC5)>我在我的应用程序中添加了以下类: 公共类SomeDisposable:IDisposable{ public void Dispose() { System.Diagnostics...

c# – 从.NET 4.5.1应用程序(EXE)引用.NET 3.5 DLL使用.NET 4.5.1对象【代码】

所以我有一个使用.NET 3.5编译的DLL.我目前正在调试此DLL中的以下行: 在VB.NET中:Dim result As IAsyncResult = CType(Cmd, SqlClient.SqlCommand).BeginExecuteNonQuery()或(在C#中)IAsyncResult result = (SqlClient.SqlCommand) Cmd.BeginExecuteNonQuery()我从.NET 4.5.1 Compiled .EXE引用此DLL,当我在VS调试器中查看上面代码中的“result”对象时,我看到:Id = 1, Status = WaitingForActivation {1}, Method = "{null}", ...

c# – 对象实例仅对当前方法有效【代码】

是否可以创建一个对象,该对象可以注册当前线程是否离开创建它的方法,或者检查实例上的方法被调用时是否发生了这种情况?ScopeValid obj;void Method1() {obj = new ScopeValid();obj.Something(); }void Method2() {Method1();obj.Something(); //Exception }这项技术能否实现?我想开发一种类似于TypedReference和ArgIterator的机制,它不能“逃避”当前的方法.这些类型是由编译器专门处理的,所以我无法完全模仿这种行为,但我希望至...

c# – 将对象注入延迟加载【代码】

我有像下面的MVC代码.我使用nInject for IoC.我想知道当我推送请求时,例如SendMail有创建控制器对象,nInject为两个只读对象创建子对象:_mailSrv和_dbSrv,但我在这个请求中只需要一个变量.是否可以将变量注入延迟加载.当代码需要对象时,它会被创建吗?public class HomeController:Controller {private readonly IMailService _mailSrv;private readonly IDatabaseService _dbSrv;public HomeController:Controller(IMailService m...

c# – 使用Ninject基于字符串创建对象【代码】

我需要根据从数据库中获取的字符串创建共享公共接口(IFoo)的对象.我有“A”,我需要填写AFoo,我得到“B”,我需要生产BFoo等.我应该做的第一件事就是工厂.但是创建的对象(AFoo,BFoo)需要注入其依赖项(并且这些依赖项需要更多的依赖项和一些偶数参数).对于所有注射我使用Ninject,它本身似乎是一个奇特的工厂.要在我的工厂中创建对象,我通过构造函数注入一个Ninject的内核.这是理想的方式吗?interface IBar { }class Bar : IBar {publ...

C#重写方法并返回不同的对象【代码】

我在基类上有一个虚方法.每次我覆盖它,我想返回不同的对象类型.我知道这是不可能的,但处理这种情况的最佳方法是什么? 基本方法示例:public virtual void clickContinue() {//click the continue button }以及覆盖它的方法:public override myObject clickContinue() {//click then continue button//return myObject }我需要做几个类似的覆盖,都返回不同的对象.同样,我知道这不可能按照上面的方式完成 – 我试图找出处理这种情...