AifFaultFix – это код, который исправляет в Microsoft Dynamics AX 2009 ошибку Type 'Wcf.AifFault' in assembly 'Wcf, version=0.0.0.0...' is not marked as serializable.
.
Класс AifServiceReferenceManager
в Аксапте генерирует исходные тексты клиентской части WCF
и компилирует dll из этих исходных текстов. К сожалению, разработчики Microsoft не проставили несколько атрибутов в "системных" классах, которые обслуживают исключения в WCF
.
Проект AifFaultFix
добавляет метод на X++ в класс AifServiceReferenceManager. Добавленный код вносит исправления в исходный текст WcfSoapClient.cs
перед тем, как генератор начнет компилировать dll.
После добавления проекта в вашу ax2009, нужно перегенерировать Web Reference (удалить-создать заново или правой кнопкой мыши и пункт Восстановить). После перегенерации вы будете видеть в вашей ax2009 текст исключения, которое было брошено на сервере.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="AifFault", Namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/Fault")]
[System.SerializableAttribute()] // <-------- AifFaultFix
public partial class AifFault : object, System.Runtime.Serialization.IExtensibleDataObject
{
[System.NonSerializedAttribute()] // <-------- AifFaultFix
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
...
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="InfologMessage", Namespace="http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.AX.Framework.Services")]
[System.SerializableAttribute()] // <-------- AifFaultFix
public partial class InfologMessage : object, System.Runtime.Serialization.IExtensibleDataObject
{
...
}
Буду признателен за ваши замечания, предложения и советы по проекту как в разделе Issues, так и в виде письма на адрес mazzy@mazzy.ru
Мазуркин Сергей (mazzy)