Amf3 получение значений объектов - C#
Формулировка задачи:
Люди, приветствую вас.
пытаюсь получить информацию из потока данных amf3, набросал программку для десериализации данных (для примера беру данные из файла)
получаю десериализованный объект - месагу (тело+заголовок)
но получить конкретные данные (значения) из этой мессаги не могу.
подскажите как извлечь их?
на скрине пример структуры данных на паузе отладки.
using System; using FluorineFx.IO; using System.IO; namespace ConsoleApplication9 { internal class Program { private static void Main(string[] args) { var fsD = new FileStream("resp3.hex", FileMode.Open, FileAccess.Read, FileShare.Read); // AMFDeserializer deserializer=new AMFDeserializer(fsD); var deserializer = new AMFDeserializer(fsD); var messageD = deserializer.ReadAMFMessage(); string target = ""; string response = ""; object content = null; var am = new AMFBody(target, response, null); am = messageD.GetBodyAt(0); target = am.Target; response = am.Response; content = am.Content; //var resp = new MessageBase(); //resp.body = messageD; //var mes = new ASObject(); //resp.SetHeader("",messageD); //object value = resp.body; //if (value is IDictionary) //{ // IDictionary dictionary = value as IDictionary; // foreach (DictionaryEntry entry in dictionary) // { // this.Add(entry.Key as string, entry.Value); // } //} // var fsS = new FileStream("prog-S12.amf", FileMode.Create, FileAccess.Write, FileShare.Write); //var serializer = new AMFSerializer(fsS); //var hed = new AMFHeader("pr", true, pr); //var mes = new AMFMessage(); //var bod = new AMFBody(target: "pr", response: "pr", content: pr); //mes.AddHeader(hed); //mes.AddBody(bod); //serializer.WriteMessage(mes); Console.WriteLine("1212"); } } }
Решение задачи: «Amf3 получение значений объектов»
textual
Листинг программы
class AcknowledgeMessageExt : AsyncMessageExt, IExternalizable { private const long serialVersionUID = -8764729006642310394L; public const string CLASS_ALIAS = "DSK"; public AcknowledgeMessageExt() : this(null) { } public AcknowledgeMessageExt(AcknowledgeMessage message) : base() { _message = message; } public virtual string Alias { get { return CLASS_ALIAS; } } //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void writeExternal(java.io.ObjectOutput output) throws java.io.IOException public void WriteExternal(IDataOutput output) { /*if (_message != null) { _message.writeExternal(output); } else { base.writeExternal(output); }*/ } public void ReadExternal(IDataInput input) { base.ReadExternal(input); short[] flagsArray = readFlags(input); for (int i = 0; i < flagsArray.Length; i++) { short flags = flagsArray[i]; short reservedPosition = 0; // For forwards compatibility, read in any other flagged objects // to preserve the integrity of the input stream... if ((flags >> reservedPosition) != 0) { for (short j = reservedPosition; j < 6; j++) { if (((flags >> j) & 1) != 0) { input.ReadObject(); } } } } } private AcknowledgeMessage _message; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д