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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д