小编Ros*_*per的帖子

如何将包含ILIST成员的对象序列化为XML?

我试图转换一个对象说用户有多个字段到XML.问题是我在尝试序列化ILIST成员时遇到异常.以下是我使用的代码:

var stringwriter = new System.IO.StringWriter(); 
var serializer = new XmlSerializer(User.GetType()); <!-- Getting exception here -->
serializer.Serialize(stringwriter, User); 
return stringwriter.ToString();
Run Code Online (Sandbox Code Playgroud)

我的用户看起来像这样:

class User
{       public virtual string Name{ get; set; }
        public virtual DateTime? LastUpdated { get; set; }

        public virtual int? ContactId { get; set; }

        public virtual IList<Sector> Sectors { get; set; }
        public virtual AccessLevel AccessLevel { get; set; }
        public virtual IList<UserRole> UserRole { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以检查我正在序列化的对象的类成员是否可序列化,然后调整该特定成员的逻辑.我对用户类的控制较少.:(所以任何方式,我可以扩展我的代码来处理IList成员将是首选.

c# xml serialization

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

避免null进入列表

请参阅下面的代码

1. persons = Items.Select(item => componentResolver.ResolvePerson(new TridionUri(item.Id))).ToList();
2. persons.Each(person => person.AdditionalInfo); // gives null reference exception
Run Code Online (Sandbox Code Playgroud)

ResolvePerson看起来像:

public Person ResolvePerson(TridionUri personUri)
{
    Person person = publicationResolverService.GetPerson(personUri);
    if (author != null)
    {
        person.Id = personUri.ItemId.ToString();
    }
    return person;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,"项目"包含一个人不存在的ID.所以我的'ResolvePerson'返回null.这导致第2行中的例外.我只能控制ResolvePerson方法.有没有办法可以跳过没有人在场的personUri而不是返回null?

.net c# lambda list anonymous-methods

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

如何设置asp.net应用程序的根路径

我有一个asp.net应用程序,其中包含位于多个文件夹中的页面.我的.js文件也在一个"JS"文件夹中,我在主页的头部添加了他们的引用,如:

<script  type="text/javascript" src="JS/jquery.min.js"></script>  
Run Code Online (Sandbox Code Playgroud)

现在,当我在主页上时,脚本加载正常.但是,当我在另一个文件夹(例如物理)中的其他页面上时,路径会被追加,因此我得到错误:

无法加载资源:服务器响应状态为404(未找到)

类似的事情也发生在我的图像路径和<a>标签上.

现在我想提供关于根路径的路径,例如:

~/JS/VerticalMenu.js
Run Code Online (Sandbox Code Playgroud)

但这~并没有把我带到我的应用程序的根源.我需要设置~应该导致的位置吗?如果是,那么在哪里以及如何?

asp.net root

0
推荐指数
1
解决办法
5872
查看次数

通过LINQ删除父类类型列表的项目

我有一个父类列表,包含由子类组成的对象项.例如

Class Vehicle
{
String Name;
}

Class Car: Vehicle
{
int Speed;
}

Class Bike: Vehicle
{
int Milage;
}

List<Vehicle> transports = new List<Vehicle>;
transports.Add(new Car{Name = "Fiat", Speed = 70});
transports.Add(new Bike{Name = "Bajaj", Milage = 70});
transports.Add(new Car{Name = "BMW", Speed = 100});
Run Code Online (Sandbox Code Playgroud)

现在我要删除速度为100的汽车类型的物品.我该怎么做.优先通过linq

c# linq generics list

0
推荐指数
1
解决办法
529
查看次数

标签 统计

c# ×3

list ×2

.net ×1

anonymous-methods ×1

asp.net ×1

generics ×1

lambda ×1

linq ×1

root ×1

serialization ×1

xml ×1