<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807365</guid>
        <pubDate>Thu, 20 Jan 2011 15:03:10 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807365</link>
        <description><![CDATA[maxim84_: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Так что либо большая нагрузка на сервис (сериализация в Register) либо возможность потерять данные (сериализация в Dispose). Наверное, лучше 1 вариант.</div></div><br>
При больших нагрузках 1 вариант вообще никакой...я уже сказал, чем это грозит.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А если &quot;крестиком&quot; - не вызывается.</div></div><br>
Сервис? крестиком...хм...ну не знаю. Нафига? Если это фоновое приложение и регистрировать должна как служба на сервисе. А при разработке можно и Enter нажать. Ну не суть...<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Но все-таки интересно, почему Dispose не вызывается, если закрывать &quot;крестом&quot;.</div></div><br>
Уже ответил почему. Подпишись на event от консольки, говорящий о том, что ее закрыли.<br>
<br>
Если хочешь, можешь попробовать еще &quot;опасный&quot; метод:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class WcfService : IService</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;~WcfService() </div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; this.Dispose();</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>maxim84_</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807304</guid>
        <pubDate>Thu, 20 Jan 2011 14:24:19 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807304</link>
        <description><![CDATA[Spawn.NET: Про закрытие консоли 2 раза уж спрашивали на прошлой неделе, поищи тему]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807258</guid>
        <pubDate>Thu, 20 Jan 2011 13:46:02 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2807258</link>
        <description><![CDATA[GoldenJoe: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2805370'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pit&#045;Bul &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T15:38:03+00:00">18.01.11, 15:38</time></span><div class='quote '>WCF поддерживает аутентификацию на основе пользовательских и доменных политик</div></div><br>
Почитал. Может, стоит перейти со своего велосипеда:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">public interface IService</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;[OperationContract]</div><div class="code_line">&nbsp;&nbsp; &nbsp;bool Register(string userName, string password); // Регистрация нового пользователя. Аналогично регистрации на каком-нибудь сайте.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // На данный момент выполняю сериализацию списка пользователей в методе Register.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Можно и в Dispose. Но! (см. далее)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;[OperationContract]</div><div class="code_line">&nbsp;&nbsp; &nbsp;bool LogOn(string userName, string password); // Войти</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;[OperationContract]</div><div class="code_line">&nbsp;&nbsp; &nbsp;bool LogOff(); // Выйти</div><div class="code_line">}</div></ol></div></div></div></div><br>
на это?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;serviceCredentials&#62;</div><div class="code_line">&nbsp;&nbsp;&#60;userNameAuthentication userNamePasswordValidationMode=&quot;Custom&quot; customUserNamePasswordValidatorType=&quot;CustomUserNameValidator, MyService&quot; /&#62;</div><div class="code_line">&#60;/serviceCredentials&#62;</div></ol></div></div></div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2806497'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>maxim84_ &#064; <time class="tag-quote__quoted-time" datetime="2011-01-19T16:47:23+00:00">19.01.11, 16:47</time></span><div class='quote '>После выхода из using будет вызван Dispose() для _service;</div></div><br>
Все правильно, если закрывать программу-хост нажатием &lt;enter&gt; (Console.ReadLine() ведь). А если &quot;крестиком&quot; - не вызывается. Инфа 100% - ставил breakpoint и проверял. Сейчас кто-нибудь ответит &quot;закрывай enter&#39;ом и не парься&quot;. Но все-таки интересно, почему Dispose не вызывается, если закрывать &quot;крестом&quot;. Если решить эту проблему, можно, в принципе, выполнять сериализацию в Dispose, а не в Register. Преимущество - сериализация списка пользователей выполняется всего 1 раз - при закрытии программы-хоста (Кэп намекает, что если делать это в методе Register, сериализация будет выполняться каждый раз, когда регистрируется новый пользователь. &quot;Если пользователей станет много, то сервис только сериализацией и будет заниматься...&quot; - как-то так.). И недостаток сериализации в Dispose - потеря данных в случаи отключения питания компьютера, на котором запущен сервис.<br>
Так что либо большая нагрузка на сервис (сериализация в Register) либо возможность потерять данные (сериализация в Dispose). Наверное, лучше 1 вариант.]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2806497</guid>
        <pubDate>Wed, 19 Jan 2011 16:47:23 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2806497</link>
        <description><![CDATA[maxim84_: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804478'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GoldenJoe &#064; <time class="tag-quote__quoted-time" datetime="2011-01-17T15:54:10+00:00">17.01.11, 15:54</time></span><div class='quote '>Pit-Bul, работает. Но Dispose вызывается каждый раз, когда отключается один из клиентов. Мне это не нужно, по этому ставлю InstanceContextMode=InstanceContextMode.Single (чтобы для каждого клиента не создавался отдельный экземпляр службы). Теперь Dispose вообще не вызывается, даже при закрытии окна консоли. </div></div><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">WcfService _service = null;</div><div class="code_line">....</div><div class="code_line">using(_service = new WcfService(Uri))</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;_service.Open();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; ....</div><div class="code_line">&nbsp;&nbsp; Console.ReadLine(); //просто для демонстрации :)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;_service.Close();</div><div class="code_line">} //После выхода из using будет вызван Dispose() для _service;</div></ol></div></div></div></div><br>
<br>
Так-же можно подписаться на события закрытия и вызывать Dispose. Метод Dispose не вызывается сервисом WCF т.к. для него не очевидно, что это необходимость делать. И сей момент переложен на плечи внешнего кода. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2011-01-19T16:59:10+00:00">19.01.11, 16:59</time></span></span><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А возможно ли не сериализовывать весь список заново, например, из-за 1 пользователя? (т.е. сохранить изменения, не выполняя повторную сериализацию всего списка)</div></div><br>
Зачем при каждом входе то?? Если пользователей станет много, то сервис только сериализацией и будет заниматься...<br>
<br>
Создай подсистему активных пользователей и запусти поток, пусть с определенным интервалом смотрит на активных пользователей, кто долго неактивен, логаути и сохраняй.]]></description>
        <author>maxim84_</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805636</guid>
        <pubDate>Tue, 18 Jan 2011 19:41:43 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805636</link>
        <description><![CDATA[Spawn.NET: Ну, можешь, только нужный node исправлять, но это уже вручную.]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805539</guid>
        <pubDate>Tue, 18 Jan 2011 17:46:53 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805539</link>
        <description><![CDATA[GoldenJoe: Т.е. тут без вариантов - заново сериализовать весь список, так?]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805403</guid>
        <pubDate>Tue, 18 Jan 2011 16:04:27 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805403</link>
        <description><![CDATA[Spawn.NET: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2805362'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GoldenJoe &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T15:30:13+00:00">18.01.11, 15:30</time></span><div class='quote '>(т.е. сохранить изменения, не выполняя повторную сериализацию всего списка)</div></div><br>
Сам на свой вопрос отвечаешь. Вручную дописать изменения, значит открыть файл, внести изменения, сохранить, закрыть... Проще сериализовать :)]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805370</guid>
        <pubDate>Tue, 18 Jan 2011 15:38:03 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805370</link>
        <description><![CDATA[Pit-Bul: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2805282'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GoldenJoe &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T14:26:42+00:00">18.01.11, 14:26</time></span><div class='quote '>Имхо, сохранять надо именно по завершению работы консольной программы-хоста (а соответственно и сервиса). Чтобы при следующем запуске сервис загрузил список пользователей из xml файла и спокойно продолжил работать (иначе после перезапуска сервиса всем пользователям придеться заново регистрироваться)</div></div><br>
<br>
вот как раз то что рвало мой мозг :), как сказал бы мой шеф &quot;двоечник, тащи ремень, пороть будем&quot;  :D <br>
<br>
Во первых, создание списка пользователей динамически уже бред. Во вторых что значит <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2805282'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GoldenJoe &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T14:26:42+00:00">18.01.11, 14:26</time></span><div class='quote '>иначе после перезапуска сервиса всем пользователям придется заново регистрироваться</div></div><br>
<br>
вообще то пользователь авторизуется при каждом обращении к сервису с предоставлением учетных данных. То есть при первом запуске приложения пользователь в клиентском приложении вводит логин/пароль, клиентское приложение отправляет эту пару сервису и при удачной авторизации возвращает учетные данные клиента, которые далее клиент при каждом обращении к сервису обязан предоставить. Следовательно получаем, есть статический список пользователей, например в базе, в XML хоть просто в текстовом файлике из которого сервис при первой авторизации получает данные и отдает их клиенту. Теперь касаемо управления пользователями, то есть добавление/удаление, изменение данных и прав - это обязанность либо отдельной программки, либо части клиентского приложения доступного опять же определенным учетным записям, выбирай сам. <br>
<br>
Вот примерно вот так :)<br>
<br>
ЗЫ: еще покури на тему System.Security и System.IdentityModel.Policy, WCF поддерживает аутентификацию на основе пользовательских и доменных политик]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805362</guid>
        <pubDate>Tue, 18 Jan 2011 15:30:13 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805362</link>
        <description><![CDATA[GoldenJoe: <strong class='tag-b'>Raino</strong>, <strong class='tag-b'>Spawn.NET</strong><br>
Ага, это еще и надежнее. Наверное, так и сделаю.<br>
А возможно ли не сериализовывать весь список заново, например, из-за 1 пользователя? (т.е. сохранить изменения, не выполняя повторную сериализацию всего списка)]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805333</guid>
        <pubDate>Tue, 18 Jan 2011 15:06:37 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805333</link>
        <description><![CDATA[Spawn.NET: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2805317'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Raino &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T14:58:51+00:00">18.01.11, 14:58</time></span><div class='quote '>Почему не сохранять информацию по мере изменения объектов в программе? Что будет, если машину с сервисом просто обесточат, изменения потеряются?</div></div><br>
 :yes: <br>
<strong class='tag-b'>GoldenJoe</strong>, сохраняй при входе, коль уж это не логи всей работы.]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805317</guid>
        <pubDate>Tue, 18 Jan 2011 14:58:51 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805317</link>
        <description><![CDATA[Raino: Почему не сохранять информацию по мере изменения объектов в программе? Что будет, если машину с сервисом просто обесточат, изменения потеряются?]]></description>
        <author>Raino</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805296</guid>
        <pubDate>Tue, 18 Jan 2011 14:41:17 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805296</link>
        <description><![CDATA[GoldenJoe: <strong class='tag-b'>Spawn.NET</strong><br>
Я же говорил уже. Класс User описывает пользователя сервиса (как минимум логин и пароль). В xml буду хранить List&lt;User&gt;.]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805287</guid>
        <pubDate>Tue, 18 Jan 2011 14:34:07 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805287</link>
        <description><![CDATA[Spawn.NET: <strong class='tag-b'>GoldenJoe</strong>, что в сериализованном xml планируется хранить?]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805282</guid>
        <pubDate>Tue, 18 Jan 2011 14:26:42 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2805282</link>
        <description><![CDATA[GoldenJoe: Таки не буду менять консоль на виндовсовский сервис, ибо<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804777'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pit&#045;Bul &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T06:27:02+00:00">18.01.11, 06:27</time></span><div class='quote '>очень сложно будет такое дело отладит</div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804777'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pit&#045;Bul &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T06:27:02+00:00">18.01.11, 06:27</time></span><div class='quote '>сохранение пользователей надо выносить в логическую процедуру</div></div><br>
Имхо, сохранять надо именно по завершению работы консольной программы-хоста (а соответственно и сервиса). Чтобы при следующем запуске сервис загрузил список пользователей из xml файла и спокойно продолжил работать (иначе после перезапуска сервиса всем пользователям придеться заново регистрироваться)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804784'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MIF &#064; <time class="tag-quote__quoted-time" datetime="2011-01-18T06:52:58+00:00">18.01.11, 06:52</time></span><div class='quote '>Я лично понял что лист пользователей хранится в статической (static) переменной.</div></div><br>
Как-то незачем делать статик, если у меня InstanceContextMode=InstanceContextMode.Single (т.е. один экземпляр сервиса на всех).]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804784</guid>
        <pubDate>Tue, 18 Jan 2011 06:52:58 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804784</link>
        <description><![CDATA[MIF: ТС нам не всё сказал, посему приходится гадать. Я лично понял что лист пользователей хранится в статической (static) переменной.]]></description>
        <author>MIF</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804777</guid>
        <pubDate>Tue, 18 Jan 2011 06:27:02 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804777</link>
        <description><![CDATA[Pit-Bul: <strong class='tag-b'>MIF</strong> с учетом выше озвученных вопросов ему очень сложно будет такое дело отладит, и если честно то я болше склоняюсь к версии что сохранение пользователей надо выносить в логическую процедуру и делать это отдельно, и никак не при dispose обьекта]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804775</guid>
        <pubDate>Tue, 18 Jan 2011 06:18:37 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804775</link>
        <description><![CDATA[MIF: ИМХО, замени консоль хост на виндовский сервис. У сервиса есть очень хороший метод OnStop. Вот в нем сериализовать будет удобно.]]></description>
        <author>MIF</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804770</guid>
        <pubDate>Tue, 18 Jan 2011 06:11:17 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804770</link>
        <description><![CDATA[Pit-Bul: <strong class='tag-b'>GoldenJoe</strong>, и почему меня не оставляет ощущение что ты все таки что то не так делаешь, у тебя явно серьезное упущение в логике приложения раз ты пришел к таким проблемам.]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804688</guid>
        <pubDate>Mon, 17 Jan 2011 21:11:41 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804688</link>
        <description><![CDATA[GoldenJoe: <strong class='tag-b'>Spawn.NET</strong>, после отключения каждого пользователя выполнять сериализацию списка пользователей... Ужас. Сервис будет грузить проц и жрать оперативу. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2011-01-17T21:27:55+00:00">17.01.11, 21:27</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Spawn.NET &#064; <time class="tag-quote__quoted-time" datetime="2011-01-17T20:51:00+00:00">17.01.11, 20:51</time></span><div class='quote '>при отключении последнего пользователя</div></div><br>
Когда отключается пользователь, никак нельзя заранее знать, что он последний.]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804674</guid>
        <pubDate>Mon, 17 Jan 2011 20:51:00 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804674</link>
        <description><![CDATA[Spawn.NET: <strong class='tag-b'>GoldenJoe</strong>, разве что при отключении последнего пользователя, ну или пользователя в принципе, коль уж одно соединение на всех.]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804669</guid>
        <pubDate>Mon, 17 Jan 2011 20:44:10 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804669</link>
        <description><![CDATA[GoldenJoe: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804651'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Spawn.NET &#064; <time class="tag-quote__quoted-time" datetime="2011-01-17T20:06:16+00:00">17.01.11, 20:06</time></span><div class='quote '>Dispose подняться при InstanceContextMode.Single должен только при завершении сервиса...</div></div><br>
Что мне и нужно. Ставлю бряк на dispose - не срабатывает вообще, и при завершении сервиса не срабатывает. А при Single вроде и не должен. Значит, dispose - не вариант. Как же тогда отловить завершение работы сервиса?]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804651</guid>
        <pubDate>Mon, 17 Jan 2011 20:06:16 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804651</link>
        <description><![CDATA[Spawn.NET: Dispose подняться при InstanceContextMode.Single должен только при завершении сервиса...<br>
По сути, как написано в <a class='tag-url' href='http://msdn.microsoft.com/ru-ru/library/dd335932.aspx' target='_blank'>MSDN</a>, он может и поднимается, но мы этого уже не видим :)]]></description>
        <author>Spawn.NET</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804644</guid>
        <pubDate>Mon, 17 Jan 2011 19:33:20 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804644</link>
        <description><![CDATA[GoldenJoe: Никто не знает, почему Dispose сервиса не вызывается при завершении работы хоста? (если поставить InstanceContextMode=InstanceContextMode.Single)]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804478</guid>
        <pubDate>Mon, 17 Jan 2011 15:54:10 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804478</link>
        <description><![CDATA[GoldenJoe: <strong class='tag-b'>Pit-Bul</strong>, работает. Но Dispose вызывается каждый раз, когда отключается один из клиентов. Мне это не нужно, по этому ставлю InstanceContextMode=InstanceContextMode.Single (чтобы для каждого клиента не создавался отдельный экземпляр службы). Теперь Dispose вообще не вызывается, даже при закрытии окна консоли.]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804462</guid>
        <pubDate>Mon, 17 Jan 2011 15:36:32 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804462</link>
        <description><![CDATA[Pit-Bul: ты пока просто попробуй]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804459</guid>
        <pubDate>Mon, 17 Jan 2011 15:34:34 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804459</link>
        <description><![CDATA[GoldenJoe: private XmlSerializer serializer; - этот использую еще и для ДЕсериализации. Второй создавать что-ли? (в методе Dispose)]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804458</guid>
        <pubDate>Mon, 17 Jan 2011 15:31:03 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804458</link>
        <description><![CDATA[Pit-Bul: не уверен, не понятен контекст, но может сработать это<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if (disposing)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;serializer = new XmlSerializer(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp;serializer.Serialize([блаблабла]);</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804450</guid>
        <pubDate>Mon, 17 Jan 2011 15:21:15 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804450</link>
        <description><![CDATA[GoldenJoe: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=323479&view=findpost&p=2804441'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pit&#045;Bul &#064; <time class="tag-quote__quoted-time" datetime="2011-01-17T15:14:46+00:00">17.01.11, 15:14</time></span><div class='quote '>метод завершения работы сервиса</div></div><br>
Это как? Мой сервис состоит целиком и полностью из [OperationContract]&#39;ов. И Dispose.<br>
<br>
P.S. начал учить C# неделю назад.]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804441</guid>
        <pubDate>Mon, 17 Jan 2011 15:14:46 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804441</link>
        <description><![CDATA[Pit-Bul: а что мешает сделать эту самую сериализацию до вызова Dispose, то есть включить это в метод завершения работы сервиса ???]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804435</guid>
        <pubDate>Mon, 17 Jan 2011 15:09:05 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804435</link>
        <description><![CDATA[GoldenJoe: <strong class='tag-b'>Pit-Bul</strong>, это не имеет никакого отношения к дело, но если надо, поясню: есть класс User, описывающий пользователя сервиса. Сериализовать надо List&lt;User&gt; - список пользователей. Причем сделать это надо по завершению работы службы (это происходит при закрытии консольного приложения, в котором хостится сервис). <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2011-01-17T15:11:10+00:00">17.01.11, 15:11</time></span></span><br>
Пытаюсь выполнить сериализацию List&lt;User&gt; в методе Dispose, но экземпляр XmlSerializer к тому времени уже равен null (спасибо GC)]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804427</guid>
        <pubDate>Mon, 17 Jan 2011 15:01:02 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804427</link>
        <description><![CDATA[Pit-Bul: <strong class='tag-b'>GoldenJoe</strong>, не понятна суть вопроса, зачем и что ты пытаешься серилизовать]]></description>
        <author>Pit-Bul</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804417</guid>
        <pubDate>Mon, 17 Jan 2011 14:56:50 +0000</pubDate>
        <title>Сериализация класса по завершению работы WCF-службы</title>
        <link>https://forum.sources.ru/index.php?showtopic=323479&amp;view=findpost&amp;p=2804417</link>
        <description><![CDATA[GoldenJoe: Сабж.<br>
Пробовал так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">public class Service : IService, IDisposable</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;private XmlSerializer serializer;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//...</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public void Dispose()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Dispose(true);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;GC.SuppressFinalize(this);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;private void Dispose(bool disposing)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (disposing)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;serializer.Serialize([блаблабла]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
Но к тому времени, когда вызывается Dispose, <strong class='tag-b'>XmlSerializer serializer</strong> уже &quot;дохлый&quot; (null). Т.е. в методе <strong class='tag-b'>Dispose</strong> делать сериализацию поздно. А где тогда не поздно?]]></description>
        <author>GoldenJoe</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      </channel>
      </rss>
	