Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Десериализация объекта


Автор: Vadimdol 6.5.2016, 11:52
Здравствуйте ! Подскажите пожалуйста, почему программа не может найти файл Demon.bin  по пути  C:\\qqq\\www\\eee\\Demon.bin  ?  


//  Листинг 11.12. Десериализация объекта

using System; 
using System.IO;
using System.Runtime.Serialization.Formatters.Binary; 
namespace Pavlovs_270
{
        abstract class Spirit
    {
        public abstract void Passport();
    }

    
    class Monster : Spirit
    {
        public Monster(int health, int ammo, string name)
        {
            this.health = health;
            this.ammo = ammo;
            this.name = name;
        }

        override public void Passport()
        {
            Console.WriteLine("Monster {0}  \t health = {1}  ammo  =  {2}",
                                name, health, ammo);
        }

        string name;
        int health, ammo;
    }

        class Demo          
    {
        
        public int a = 1;
         
        public double b;
        
        public Monster X, Y;
    }
   
   class Class1
   {
      static void Main()
      {
         
         FileStream f = new FileStream("C:\\qqq\\www\\eee\\Demon.bin", FileMode.Open);
 
         BinaryFormatter bf = new BinaryFormatter();

         Demo d = (Demo)bf.Deserialize( f );    //  восстановление  объекта

         d.X.Passport()  ;      d.Y.Passport();
         Console.WriteLine( d.a );  Console.WriteLine(  d.b  );

         f.Close();

         Console.ReadKey();
      }
   }
 }



Автор: Angel_666 7.5.2016, 23:37
попробуй так @"C:\qqq\www\eee\Demon.bin"


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Deserializatsiya-obyekta-id572c5babae2015770d8b4567#findElement_E7045_572e51f1ae2015e1589ad489_0

Автор: Vadimdol 8.5.2016, 12:52
Попробовал !
 
        

Автор: Vadimdol 8.5.2016, 13:10
Angel666


Попробовал !   Строку 
 
     
Код

 FileStream f = new FileStream("C:\\qqq\\www\\eee\\Demon.bin", FileMode.Open);


заменил на

    
Код

  FileStream f = new FileStream(@"C:\qqq\www\eee\Demon.bin",FileMode.Open);


все тоже самое,результат тот же !!!   

Автор: sgrey 8.5.2016, 23:21
а файл-то есть?

Автор: Vadimdol 9.5.2016, 11:48
sgrey


    Конечно есть . Проверял и не один раз ! 

Автор: Rokforus 9.5.2016, 22:58
А как именно ругается?

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Deserializatsiya-obyekta-id572c5babae2015770d8b4567#findElement_E7045_5730ebd9ae20156f215cd7f7_0

Автор: Angel_666 10.5.2016, 09:42
Может, что то с разрешением на доступ к файлу не то???

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Deserializatsiya-obyekta-id572c5babae2015770d8b4567#findElement_E7045_573182d9ae2015b3445cdc82_0

Автор: Rokforus 12.5.2016, 15:41
Может быть и с доступом проблема...

Гадание на кофейной гуще не помагает.
Да и телепатией вряд ли кто-то владеет настолько, чтобы можно было посмотреть на сообщение об ошибке прямо из Вашей головы...

:-)

Есть возможность опубликовать сюда подробное сообщение об ошике или эксепшене?


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Deserializatsiya-obyekta-id572c5babae2015770d8b4567#findElement_E7045_573479e5ae2015b2305cd73b_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)