Как выбрать класс объекта, который будет создан из алгоритма URI

Из-за навязанных мне спецификаций я написал собственный код C# для подписи XML и проверки подписанного XML. Так же, как и класс SignedXml, но в этом случае я более гибок, например, использую префиксы пространств имен XML или нет (кажется, что SignedXml НЕ любит префиксы пространств имен в сигнатуре XML, но мои спецификации XML говорят, что они должны быть у меня), и в алгоритм для подписи (спецификации сейчас говорят sha256).

Кажется, все работает, но "несовершенство", которое беспокоит меня, заключается в том, что, например, при проверке xml мне нужно преобразовать или проверить данные с использованием определенного класса объектов, и все, что мне нужно, - это указать указанный URI алгоритма. в XML. Примером может быть канонизация: если XML говорит "http://www.w3.org/2001/10/xml-exc-c14n#" Я знаю, что могу использовать XmlDsigExcC14NTransform класс, но мой вопрос: есть ли способ получить из такого URI (или любой URI) к определенному классу объекта?

Теперь я использую список известных мне URI и классов объектов (я думаю), на которые они ссылаются (или сравниваю его со свойством Algorithm списка известных классов объектов, например, XmlDsigExcC14NTransform.Algorithm), что не совсем то, что мне нравится.

1 ответ

Решение

Это не очень хорошо документировано, но System.Security.Cryptography.CryptoConfig.CreateFromName(string) вернет вам преобразование, связанное с URI.

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