У меня есть приложение C# в .Net 4.0. У меня есть пользовательский объект, который называется OrderBlock. Этот пользовательский объект содержит несколько свойств и список, содержащий другой настраиваемый объект под названием «Заказ». Когда приложение запускается, он сохраняет объект OrderBlock в свой файл настроек.C# Чтение настраиваемого типа из файла настроек
Я могу видеть в файле настроек OrderBlock правильно сохранил список свойств &. Проблема, которая у меня есть, в следующий раз, когда я иду запускать приложение и пытаюсь прочитать объект OrderBlock, не работает. Он просто возвращает null.
_orderBlockEntity = Properties.Settings.Default.MyOrderBlock;
Другие настройки. Я могу нормально читать, используя линию, похожую на строку выше. Однако объект OrderBlock является единственным настраиваемым типом, который я использую в файле настроек.
OrderBlock & Объекты-заказ содержат свойства с атрибутами XmlElement, которые переименовывают свойство в другое имя, это для отправки XML-сообщения - понятия не имеете, если это проблема?
[XmlElement("tF_Transactions")]
public List<Order> Orders
{
get { return _orders; }
set { _orders = value; OnPropertyChanged("Orders"); }
}
** * * EDIT * ** * **
Ниже, где я сохранить объект в файле настроек - который делает работу.
Properties.Settings.Default.MyOrderBlock = _orderBlock;
Properties.Settings.Default.Save();
Код в Конструкторе представлен ниже.
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::FC.OMS.TF.Entities.OrderBlock MyOrderBlock {
get {
return ((global::FC.OMS.TF.Entities.OrderBlock)(this["MyOrderBlock"]));
}
set {
this["MyOrderBlock"] = value;
}
}
Ниже приведена справка моего файла настроек - остальное - это просто больше заказов. Другие настройки, показанные ниже, отлично работают, поскольку после перезапуска моего приложения их значения можно прочитать. Область для всех параметров ниже - Пользователь.
<setting name="LastFileDateTime" serializeAs="String">
<value>11/22/2013 09:01:29</value>
</setting>
<setting name="MessageSent" serializeAs="String">
<value>True</value>
</setting>
<setting name="MessageRecieved" serializeAs="String">
<value>True</value>
</setting>
<setting name="MyOrderBlock" serializeAs="Xml">
<value>
<SystemSettings>
<sCode>Key</sCode>
<sValue>msawyer131122090129848</sValue>
</SystemSettings>
<tF_Transactions>
<iId>17</iId>
<sSecurityId>GB0.144</sSecurityId>
<sPortfolio>OEE285</sPortfolio>
<sBuySell>B</sBuySell>
<sBuyCurrency>GBP</sBuyCurrency>
<sCostCurrency>GBP</sCostCurrency>
<iTransactionType>0</iTransactionType>
<dfBuyAmount>32000</dfBuyAmount>
<dfCostAmount xsi:nil="true" />
<dtDealDate>2013-11-22T09:01:29.8406559Z</dtDealDate>
<dtStartDate xsi:nil="true" />
<dtEndDate xsi:nil="true" />
<sUser>msawyer</sUser>
<sReason>FICLIENT</sReason>
<iStatus>0</iStatus>
<sComments>Bulk upload by msawyer at 22/11/2013 09:01:29</sComments>
<bGenerateDescription>true</bGenerateDescription>
<sDealer>msawyer</sDealer>
</tF_Transactions>
<tF_Transactions>
<iId>16</iId>
<sSecurityId>GB1.232</sSecurityId>
<sPortfolio>OEE285</sPortfolio>
<sBuySell>B</sBuySell>
<sBuyCurrency>GBP</sBuyCurrency>
<sCostCurrency>GBP</sCostCurrency>
<iTransactionType>0</iTransactionType>
<dfBuyAmount>30000</dfBuyAmount>
<dfCostAmount xsi:nil="true" />
<dtDealDate>2013-11-22T09:01:29.8396794Z</dtDealDate>
<dtStartDate xsi:nil="true" />
<dtEndDate xsi:nil="true" />
<sUser>msawyer</sUser>
<sReason>FICLIENT</sReason>
<iStatus>0</iStatus>
<sComments>Bulk upload by msawyer at 22/11/2013 09:01:29</sComments>
<bGenerateDescription>true</bGenerateDescription>
<sDealer>msawyer</sDealer>
</tF_Transactions>
Не могли бы вы показать код, сохраняющий OrderBlock, и выдержку из файла настроек, отображающую фактический xml, в котором хранится информация? –
@KaiHartmann Я добавил фактический xml моего файла настроек. – mHelpMe