C# -> MC++
От: Аноним  
Дата: 22.10.05 11:37
Оценка: :))
Есть класс (Кстати взят из статьи "Конфигурирование .NET-приложений Хранение и редактирование настроек", которая в свою очередь взята с www.rsdn.ru)


public class Config
{
  private static object lockFlag = new object();
  private static Config instance;
  [XmlIgnore]
  public static Config Instance
  {
    get
    {
      lock(lockFlag) 
      {
        if(instance == null)
        {     
          try
          {
            //Пытаемся загрузить файл с диска и десериализовать его
            using(FileStream fs = 
                new FileStream(LocalUser.GetDatabasePath()
                + "\\config.xml",FileMode.Open))
            {
              System.Xml.Serialization.XmlSerializer xs = 
                  new System.Xml.Serialization.XmlSerializer(typeof(Config));
              instance = (Config)xs.Deserialize(fs);
            }
          }
          catch(Exception e)
          {
            //Если не удалось десериализовать то просто создаем новый экземпляр
            instance = new Config();
          }
        }
      }
      return instance;
    }
  }
}


Очень нужно переписать его под MC++, но методом тыка не хочется.... т.к. C# я не понимаю
Помогите пожалуйста. Заранее благодарен...
Re: C# -> MC++
От: Apok__  
Дата: 23.10.05 05:31
Оценка:
Неужели никто не знает? Или это неосуществимо
Re: C# -> MC++
От: Apok__  
Дата: 27.10.05 10:53
Оценка:
Блин... такой большой форум, а ответа нге дождёшся .
Написали статью... помогите применить...
Я не сомневаюсь вы должны знать как это осуществить
Re: C# -> MC++
От: Аноним  
Дата: 27.10.05 14:19
Оценка:
почти ничего специфического для mc++ не обнаружено
пробуй copy/paste
Re: C# -> MC++
От: ABel  
Дата: 27.10.05 18:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть класс (Кстати взят из статьи "Конфигурирование .NET-приложений Хранение и редактирование настроек", которая в свою очередь взята с www.rsdn.ru)

А>Очень нужно переписать его под MC++, но методом тыка не хочется.... т.к. C# я не понимаю
А>Помогите пожалуйста. Заранее благодарен...

Если не ошибаюся на МС++ будет так

using namespace System;
using namespace System::IO;
using namespace System::Threading;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::Collections;


__gc public public class Config
{
private:
    static Object* lockFlag = new Object();
    static Config* instance;
  
public:
[XmlIgnoreAttribute]
__property static Config* get_Instance()
  {
    __try         
      {
          Monitor::Enter(lockFlag);
        if(instance == NULL)
        {     
          try
          {
            //Пытаемся загрузить файл с диска и десериализовать его
            FileStream* fs = 
                new FileStream(LocalUser->GetDatabasePath()
                + S"\\config.xml",FileMode::Open);
            __try
            {
                System::Xml::Serialization::XmlSerializer* xs = 
                    new System::Xml::Serialization::XmlSerializer(__typeof(Config));
              instance = (Config*)xs->Deserialize(fs);
            }
            __finally
            {
                fs->Close();
            }
          }
          catch(Exception* e)
          {
            //Если не удалось десериализовать то просто создаем новый экземпляр
            instance = new Config();
          }
        }
      }
      __finally
      {
          Monitor::Exit(lockFlag);
      }
      return instance;
    
  }
};


Извини, если в коде будут обнаружены опечатки
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.