Строка формата BerConverter для строк (октет?)

Я пытаюсь проанализировать и кодировать пакеты с ASN.1. Я надеялся сделать это с помощью класса BerConverter, который присутствует в.Net Framework. Я немного заблудился о том, как кодировать строку формата, которая передается в методы Encode() и Decode(). Код ниже демонстрирует одну из моих проблем:

using System;
using System.DirectoryServices.Protocols;
using NUnit.Framework;

namespace Some.Test
{
    [TestFixture]
    public class Stackru
    {
        [Test]
        public void Test()
        {
            var bin = BerConverter.Encode("{s}", "test");
            var arr = BerConverter.Decode("{a}", bin);
            Assert.AreEqual("test", arr[0]);
        }
    }
}

Этот код работает. Но, как вы видите, я передаю две строки разных форматов. Метод Encode() получает команду на обработку "String", метод Decode() - на "String". Метод Encode() выдает исключение, если я передаю "{a}", метод Decode() выдает исключение, если я передаю "{s}". Это нормальное поведение? Я ожидаю, что я могу сериализовать и десериализовать, используя ту же строку формата.

Есть ли в сети хорошая документация по этой строке формата? MSDN действительно плохо. Какой-то учебник? Любая рекомендация с открытым исходным кодом для библиотеки, которая может получить структуру пакета путем отражения? Или я должен написать это сам...

0 ответов

Другие вопросы по тегам