Невозможно вызвать частный метод для System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно вызвать частный метод для System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder.

Сообщение Anonymous »

Код: Выделить всё

SubjectAlternativeNameBuilder
не предоставляет метода для добавления атрибута _Registered Id_, поэтому я пытаюсь использовать отражение для достижения своей цели:

Код: Выделить всё

var assembly = typeof(SubjectAlternativeNameBuilder).Assembly;
var generalNameAsnType = assembly.GetType("System.Security.Cryptography.Asn1.GeneralNameAsn");
var generalNameAsn = Activator.CreateInstance(generalNameAsnType);
generalNameAsnType.GetField("RegisteredId", BindingFlags.Instance | BindingFlags.NonPublic)
.SetValue(generalNameAsn, "1.3.6.1.4.1.311.20.2.3");
var methodInfo = typeof(SubjectAlternativeNameBuilder).GetMethod("AddGeneralName");
var san = new SubjectAlternativeNameBuilder();
methodInfo.Invoke(san, \[generalNameAsn\]);
Но я получаю исключение NullReferenceException в последней строке. И по какой-то причине я не могу отладить методInfo.Invoke. Если я попробую, я увижу следующую
информацию об исключении:
Изображение

Как я могу вызвать этот метод с отражением?

Подробнее здесь: https://stackoverflow.com/questions/799 ... rtificates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»