Лучший способ сохранить состояние средств управления форм Winform?

При попытке проанализировать ~ / из какого-либо файла, включая текстовые файлы, JavaScript, и т.д., можно записать обработчик, который присваивает фильтр ему, и можно использовать это для поиска тех путей..., например...

public class StringParsingFilter : MemoryStream {

    public Stream OriginalStream {
        get { return this.m_OriginalStream; }
        set { this.m_OriginalStream = value; }
    }
    private System.IO.Stream m_OriginalStream;

    public StringParsingFilter() : base() {
        this.m_OriginalStream = null;
    }

    public override void Flush() {
        this.m_OriginalStream.Flush();
    }

    public override void Write(byte[] buffer, int offset, int count) {

        //otherwise, parse for the correct content
        string value = System.Text.Encoding.Default.GetString(buffer);
        string contentType = HttpContext.Current.Response.ContentType;

        //Do any parsing here
        ...

        //write the new bytes to the stream
        byte[] bytes = System.Text.Encoding.Default.GetBytes(value);
        this.m_OriginalStream.Write(bytes, offset, count + (bytes.Length - buffer.Length));

    }

}

И Вы запишете пользовательский обработчик для знания, когда присвоить этот фильтр... как следующее...

 public class FilterControlModule : IHttpModule {

    public void Init(HttpApplication context) {
        HttpApplication oAppContext = context;
        oAppContext.BeginRequest += new EventHandler(_HandleSettingFilter);                        
    }

    private void _HandleSettingFilter(object sender, EventArgs e) {

        //You might check the file at this part to make sure
        //it is a file type you want to parse
        //if (!CurrentFile.isStyleSheet()) { return; }
        ...

        //assign the new filter
        StringParsingFilter filter = new StringParsingFilter();
        filter.OriginalStream = HttpContext.Current.Response.Filter;
        HttpContext.Current.Response.Filter = (Stream)filter;

    }

}

, возможно, на самом деле было легче только сказать, "ищут IHttpModules", но это - некоторый код, что я раньше анализировал файлы для путей кроме файлов ASP.net.

необходимо будет также изменить некоторые вещи в настройках IIS, чтобы позволить файлам быть проанализированными путем установки ISAPI ASP.net, чтобы быть подстановочным знаком для всех файлов, которые обрабатываются. Вы видите больше в этом веб-сайте при использовании IIS6, который является...

можно также использовать это для изменения любых типов файлов, таким образом, Вы могли присвоить некоторые фильтры для изображений, некоторых для JavaScript или таблиц стилей или... действительно чего-либо...

6
задан Joan Venge 8 October 2009 в 22:27
поделиться

2 ответа

Я бы использовал привязку данных для привязки содержимого всех соответствующих элементов управления к настраиваемому (не-ui) классу, а затем просто сериализовал бы (XML или двоичный) этот класс. Я бы выбрал сериализацию XML, по крайней мере, пока вы разрабатываете, поскольку это поможет вам при отладке (вы можете в любой момент просмотреть сериализованные файлы).

1
ответ дан 17 December 2019 в 22:13
поделиться

Я бы сказал, что если вы храните модель, свойства которой могут измениться, вы можете взглянуть на Custom Serialization . В конце статьи говорится о хранении информации о версиях для изменений в модели, чтобы помочь с десериализацией.

0
ответ дан 17 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: