단일 배열 매개 변수를 사용하는 생성자에 대해 New-Object를 호출하려면 어떻게 해야 합니까?
PowerShell에서 사용하고 싶은 제품은New-Object싱글 argument를 부르려고요망구축자new X509Certificate2(byte[] byteArray). 문제는 파워셸의 바이트 배열로 이 작업을 수행하면
새 개체 : "X509Certificate2" 및 인수 개수 "516"에 대한 오버로드를 찾을 수 없습니다.
사용에 대한 이러한 접근 방식new-object작동해야 함:
$cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate `
-ArgumentList @(,$bytes)
장점은 PowerShell이 생성자 인수 배열을 기대하고 있다는 것입니다.하나의 인수만 있고 그것이 배열일 때 파워셸의 과부하 해결 알고리즘을 혼동할 수 있습니다.위의 코드는 바이트 배열을 그 한 요소만으로 배열함으로써 이를 해결하는 데 도움이 됩니다.
업데이트: PowerShell >= v5에서 다음과 같이 컨스트럭터를 직접 호출할 수 있습니다.
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate]::new($bytes)
놀랍게도 저는 이것을 시도해 보았는데 효과가 있는 것 같습니다.
[byte[]] $certPublicBytes = something
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate] $certPublicBytes
return $cert
어떤 마법으로 작동하는지 아직 모르니 설명해주시면 감사하겠습니다 :)
(참고: 위와 같이 대괄호 타입 이름을 사용하면 'Cannot value' System과 같은 다른 오류가 발생할 수 있음을 알게 되었습니다."System"을 입력하려면 "Byte[]"를 입력합니다.보안.암호학.X509 인증서.X509 인증서".오류: "요청한 개체를 찾을 수 없습니다."Keith가 추천하는 노골적인 New-Object 접근법이 더 나은 것 같습니다!)
언급URL : https://stackoverflow.com/questions/12870109/how-do-i-call-new-object-for-a-constructor-which-takes-a-single-array-parameter
'programing' 카테고리의 다른 글
| 사용자의 현재 도시 이름을 검색하는 방법은? (0) | 2023.10.10 |
|---|---|
| 도커의 공정에서 탈부착은 어떻게 합니까? (0) | 2023.10.10 |
| Angular.js 프레임워크의 추가 js 파일은 무엇을 위한 것입니까? (0) | 2023.10.10 |
| iOS 앱에서 Oracle에 연결 (0) | 2023.10.10 |
| Angular CLI 버전을 다운그레이드하는 방법은? (0) | 2023.10.10 |