Я - крупный поклонник LINQ - хотя это нужно сохранить в перспективе и не рассматривать как серебряную пулю.
Профессионалы:
Недостатки:
OrderBy
для вещей кроме упорядочивания - например, нахождение объекта с максимальным значением свойства я нахожу, что это является лучшим при контакте с незавершенными запросами. Их легко предсказать, понять и расшириться. Дополнительные технологии как LINQ к XML и Параллельный LINQ являются большими. LINQ к Объектам может использоваться почти где угодно.
LINQ к SQL и т.д. действительно хороши, где они являются соответствующими, но их более трудно понять и нуждаются в большем количестве экспертных знаний. Они также только применимы в определенных областях Вашего кода.
Here's a quick sample for you...
[XmlRoot("myObject")]
public class MyObject
{
[XmlElement("myProp", Namespace = "http://www.whited.us")]
public string MyProp { get; set; }
[XmlAttribute("myOther", Namespace = "http://www.whited.us")]
public string MyOther { get; set; }
}
class Program
{
static void Main(string[] args)
{
var xnames = new XmlSerializerNamespaces();
xnames.Add("w", "http://www.whited.us");
var xser = new XmlSerializer(typeof(MyObject));
using (var ms = new MemoryStream())
{
var myObj = new MyObject()
{
MyProp = "Hello",
MyOther = "World"
};
xser.Serialize(ms, myObj, xnames);
var res = Encoding.ASCII.GetString(ms.ToArray());
/*
<?xml version="1.0"?>
<myObject xmlns:w="http://www.whited.us" w:myOther="World">
<w:myProp>Hello</w:myProp>
</myObject>
*/
}
}
}
[XmlElement("someElement", Namespace="namespace")]
public string SomeElement;
Addendum: Make sure "namespace" is the full URI of the namespace, not just the prefix.