Удивительно для меня, я пробовал это, и кажется, что он работает:
[byte[]] $certPublicBytes = something
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate] $certPublicBytes
return $cert
Я еще не знаю, по какой магии он работает, поэтому ваши объяснительные комментарии оценены. :)
(Примечание: после того, как я нашел, что использование квадратного скобки-типа-типа, как я делал выше, может также привести к другим ошибкам, таким как «Невозможно преобразовать значение» System.Byte [] »в введите «System.Security.Cryptography.X509Certificates.X509Certificate». Ошибка: «Не удается найти запрошенный объект». Явный подход New-Object, рекомендованный Кейтом, кажется лучше!) [/ g2]
Это зависит от вашей ситуации. Если вы не используете метод менеджера , тогда using()
хорошо, в противном случае вам понадобится db_manager()
.
Вы можете выбрать базу данных для
blockquote>QuerySet
в любой точке «цепочки»QuerySet
. Просто вызовитеusing()
наQuerySet
, чтобы получить другуюQuerySet
, которая использует указанную базу данных.Но если вам нужно использовать методы менеджера, это не сработает.
Следующее объяснение взято из документов :
Скажем, у вас есть собственный метод менеджера, который касается базы данных -
User.objects.create_user()
. Посколькуcreate_user()
является методом менеджера, а не методомQuerySet
, вы не можете сделатьUser.objects.using('another_db').create_user()
. Методcreate_user()
доступен только дляUser.objects
менеджера, но не дляQuerySet
объектов, полученных от менеджера. Решение состоит в том, чтобы использоватьdb_manager()
, например так:User.objects.db_manager('another_db').create_user(...)
db_manager()
возвращает копию менеджера, привязанного к указанной вами базе данных.