Вам не хватает одного из класса B. В классе B есть элементы, которые вы хотите получить. Вам нужно будет использовать следующие классы:
Вы не можете десериализовать xml, который у вас есть, без использования B в качестве родительского класса. Поскольку B1, B2 и B3 являются частью элемента B, вы должны использовать структуру в вашем C#, чтобы соответствовать ей. Каждый элемент, который вы имеете в элементе B, также имеет разные имена.
public class C
{
[XmlAttribute]
public string Attr { get; set; }
}
public class B
{
[XmlElement]
public string B1 { get; set; }
[XmlElement]
public string B2 { get; set; }
[XmlElement]
public string B3 { get; set; }
}
[XmlRoot]
public class A
{
[XmlElement("C")]
public C[] Cs { get; set; }
[XmlElement("B")]
public B B { get; set; }
}
и в основном вы бы десериализовали его так же, как вы уже делаете.