У меня есть простой службы WCFWCF, XML десериализации
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(ShoppingCart value);
}
public class ShoppingCart
{
public string name;
[XmlElement("ShoppingCartItem")]
public ShoppingCartItem[] ShoppingCartItems;
}
public class ShoppingCartItem
{
public string Description;
}
и простой тест консоли. Когда я добавляю ссылку на службу в тестовую консоль, класс My ShoppingCart приходит в файл reference.cs TestConsole. Так что я могу написать, как это на проекте TestConsole:
static void Main(string[] args)
{
ShoppingCart body = new ShoppingCart();
FileStream myFileStream = new FileStream(@"C:\Resources\Xmls\New Folder\shoppingCart.xml", FileMode.Open);
XmlSerializer mySerializer = new XmlSerializer(typeof(ShoppingCart));
ShoppingCart cart = (ShoppingCart)mySerializer.Deserialize(myFileStream);
}
Мой файл shoppingCart.xml как это:
<?xml version="1.0"?>
<ShoppingCart>
<name>test</name>
<ShoppingCartItem>
<Description>XBox 360</Description>
</ShoppingCartItem>
<ShoppingCartItem>
<Description>Cell Phone</Description>
</ShoppingCartItem>
</ShoppingCart>
Итак, я жду, что когда код приходит
ShoppingCart cart = (ShoppingCart)mySerializer.Deserialize(myFileStream);
линии, должно быть два элемента. Но, похоже, это:
Не могли бы вы объяснить, почему мой список не заполнен?
спасибо, но не помогло –
Вы уверены? Я его запустил! –
Daniel, он работает, если я запускаю все это в простом консольном проекте. Но в моем случае мой реальный объект (Корзина) находится в проекте WCF и переходит на тестовую консоль, когда я добавляю ссылку на службу в свой тестовый проект. На этот раз это не сработает. Не могли бы вы попробовать этот случай. Спасибо за вашу помощь. –