我试图使用LINQ to XML将XML文件中的信息提取到对象中.虽然我可以返回文档和部分Id属性,但我无法访问每个section元素的Items,它返回文档中所有项目的IEnumerable.我知道这是正确的,因为我正在调用后代,但我很难让它只返回每个section元素的子项.有人可以帮忙吗?
XML文档
<root>
<document id="1">
<section id="1.1">
<item id="1.1.1"></item>
<item id="1.1.2"></item>
<item id="1.1.3"></item>
</section>
<section id="1.2">
<item id="1.2.1"></item>
<item id="1.2.2"></item>
</section>
</document>
</root>
Run Code Online (Sandbox Code Playgroud)
LINQ查询
XElement documentRoot = XElement.Load("document.xml");
var documents = (from docs in documentRoot.Descendants("document")
select new
{
Id = (string) docs.Attribute("id"),
Sections = docs.Elements("section"),
Items = docs.Elements("section").Elements("item")
}).ToList();
foreach(var doc in documents)
{
foreach(var section in doc.Sections)
{
Console.WriteLine("SectionId: " + section.Attribute("Id"));
foreach(var item in doc.Items)
{
Console.WriteLine("ItemId: " + section.Attribute("Id"));
}
}
}
Run Code Online (Sandbox Code Playgroud) 在WCF服务中,我将端点绑定设置为wsHttpBinding.但是,当我使用Visual Studio添加服务引用时,我的客户端app.config将绑定显示为basicHttpBinding.有人知道为什么会这样吗?
服务web.config中的My Endpoint(在IIS 7.5中托管).从baseAddresses获取地址
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="wsHttpServiceBinding"
contract="MyProject.IMyService" />
Run Code Online (Sandbox Code Playgroud)
客户端app.config:
<client>
<endpoint address="http://example.com/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"
contract="Service.MyService" name="BasicHttpBinding_MyService" />
</client>
Run Code Online (Sandbox Code Playgroud) 我正在使用动态linq库与实体框架,并希望比较日期.我已成功地扩展基于以下SO文章库这里不过似乎什么我不能做的是使该库比较只是我的实体对象的日期时间属性的日期部分,我会与正常的LINQ表达式做.
我想要做的是让动态linq像这样创建一个lambda:
// Compare just dates
p => p.CreatedDate.Value.Date == '2012/08/01'
Run Code Online (Sandbox Code Playgroud)
而不是:
// Compares date + time
p => p.CreatedDate == '2012/08/01'
Run Code Online (Sandbox Code Playgroud)
对此有任何想法将非常感激.
我的MVC 3应用程序Auth和Users中有几个区域.我正在使用Phil Haacks Route Debugging工具查看我的路线列表,并根据我的网址查看哪一个被选中.
但是,有一些路由存在,我没有在我的AreaRegistration文件或Globalasax中创建,我不知道它们来自何处或如何摆脱它们.路线在下面以黄色突出显示.
您还可以看到我在Auth区域中创建了一个默认路由(以绿色突出显示),它只是指向我的Auth控制器的Login操作.我调试了RouteTable,它在AreaRegistration.RegisterAllAreas()时被添加; 方法被调用.但是,它也没有被添加到AreaRegistration中,因为它也已经逐步完成了.
ASP.NET MVC是否将此作为默认值添加,如果是这样,我可以以某种方式删除它吗?


我是EF的新手,并且上面有以下实体模型,其中包括资产和国家.资产可以属于许多国家/地区,因此与国家/地区具有多对多关系(数据库中具有连接表,两个字段都作为主键).
我希望能够做到以下几点:
首先,当我从模型中检索资产(或资产)时,我希望获得与其关联的各个国家/地区.然后,我希望能够将国家/地区列表绑定到IEnumerable.以这种方式检索国家为我提供了一个国家对象的EntityCollection,它具有ToList()的扩展方法.因此不确定如果我正沿着正确的大道走下去.这是我的GetAll方法:
public IEnumerable<Asset> GetAll()
{
using (var context = CreateAssetContext())
{
var assetEntities = context.Assets.Include("Countries").ToList();
return AssetMapper.FromEntityObjects(assetEntities);
}
}
Run Code Online (Sandbox Code Playgroud)
其次,我希望能够选择AssetId ==某个值的国家/地区列表.
最后,我希望能够更新给定资产的国家/地区列表.
非常感谢.
我目前使用Autofac进行简单的构造函数注入而没有任何问题.但是,我想知道的是如何在运行时解决依赖关系.下面的示例显示了我们可以导出文档的多种方式.通过简单的构造函数注入,IExport的具体实现在运行时得到解决.但是,需要做的是从下拉列表中解析用户选择的IExport,这将在构造容器后发生.有没有我可以做到这一点的例子?
Public interface IExport
{
void Run(string content);
}
public class PDFformat : IExport
{
public void Run(string content)
{
// export in pdf format
}
}
public class HTMLformat : IExport
{
public void Run(string content)
{
// export in html format
}
}
public class RTFformat : IExport
{
public void Run(string content)
{
// export in rtf format
}
}
public class HomeController : Controller
{
IExport Export;
public HomeController(IExport export)
{
Export = export;
}
public …Run Code Online (Sandbox Code Playgroud) 我创建了一个cocoa应用程序(不是基于文档的),并且具有默认的MyAppDelegate类和MainMenu nib文件.我还创建了一个新的nib,它包含一个名为Splash的窗口和一个名为SplashWindowController的窗口控制器类(NSWindowController).
我想要的是,当应用程序启动而不是MainMenu nib窗口打开时,我想打开Splash窗口.
我想我必须在我的AppDelegate类中创建一个SplashWindowController的实例,然后实例化窗口并将其设置为前面.但是我尝试过几个方法,比如在我的AppDelegate类中包含对SplashWindowController.h文件的引用,以及向MainMenu nib添加一个对象,并将其类设置为SplashWindowController.但两者都没有运气.
如果那里的任何人可以帮助我解决这个问题,那么对于一天中最好的部分来说,我们会非常感激这一点(看似简单的任务).
提前致谢.
我想知道我应该在松散耦合应用程序方面采取IoC实施的程度.我在我的MVC控制器中使用构造函数注入但是想知道我是否也应该在控制器中解析所有其他依赖项而不是新建对象.例如,如果我要在控制器方法中创建一个新的User对象,我会使用吗?
var user = new User();
var user = myContainer.Resolve<IUser>();
Run Code Online (Sandbox Code Playgroud)
我喜欢打破我对User的依赖的想法,但这样做太过分了,可能会让我的代码难以阅读?
有没有办法从NSDictionary中获取基于其值的键值?我可以通过几种方式获得基于密钥的值,但我需要获得密钥.
使用下面的示例如果我的值是QuestionType,我将如何获得密钥?
NSDictionary *question = [NSDictionary dictionaryWithObjectsAndKeys:
@"QuestionType", @"0",
@"Answer", @"1",
nil];
Run Code Online (Sandbox Code Playgroud) 我试图改进我的MVC 3模型和视图(主要是CRUD)之间的数据流.我采用了使用ViewModels和FormModels的方法.我的视图模型包含了一切可能需要代表认为FORMDATA,DropDownLists等FormModel只包含了由形式提交,需要更新记录的FORMDATA领域.
我的问题是我可以使用AutoMapper将UserDto信息映射到我的ViewModel中的FormData字段吗?
显然我的映射只是两个对象之间的映射而不是属性的对象,但我尝试使用'.ForMember'映射选项,但它们又是对象成员而不是对象成员的对象.我也看了自定义类型转换器,但不确定这是否是正确的方法.
Mapper.CreateMap<UserDto, UserViewModel>();
Mapper.CreateMap<UserViewModel, UserDto>();
public class UserViewModel
{
public User FormData { get; set; }
// DropDownLists
// Other view specific data
}
public class UserFormModel
{
public int UserId { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Age { get; set; }
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
.net ×3
c# ×2
objective-c ×2
asp.net-mvc ×1
autofac ×1
automapper ×1
cocoa ×1
dynamic-linq ×1
iphone ×1
linq ×1
linq-to-xml ×1
macos ×1
wcf ×1
wcf-binding ×1
xcode4 ×1