2013-07-20 2 views
0

COM 개체 Rfc2898DeriveBytes를 만들지 못했습니다내가 그래서 내가 쓴 System.Security.Cryptography.Rfc2898DeriveBytes는 PHP <br> 에서 개체를 만들려고 해요

$obj = new COM('System.Security.Cryptography.Rfc2898DeriveBytes'); 

을하지만 난 가지고 :

Fatal error: Uncaught exception ‘com_exception’ with message ‘Failed to create COM object `System.Security.Cryptography.Rfc2898DeriveBytes’: Invalid syntax

무엇 이 코드가 잘못 되었습니까?

답변

0

관련 문서를 읽었습니까? PHP :

The COM class allows you to instantiate an OLE compatible COM object...

당신은 System.Security.Cryptography.Rfc2898DeriveBytes는 OLE 호환 COM 형식 무엇이라고 생각하게? 그렇지 않습니다.

.NET 관리 클래스입니다. ComVisible 특성을 가지고 있지만 COM을 사용하여 인스턴스화 할 수있는 OLE 호환 COM 유형이 아닙니다. 특히 기본 생성자가 없으므로 .NET 어셈블리가 COM에 등록 될 때 COM 형식 라이브러리에 it is mapped to a noncreateable coclass이 생성됩니다. 결과적으로 모든 COM 기반 메커니즘을 사용하여 인스턴스화 할 수 없습니다. 생성자 중 하나를 호출하는 관리 코드에서만 인스턴스화 할 수 있습니다. 게다가 네임 스페이스로 한정된 이름은 COM ProgId가되기에 너무 깁니다.

PHP COM 클래스를 통해이 .NET 클래스를 악용하려는 경우 기본 생성자가있는 ComVisible뿐 아니라 OLE 호환 코드 인 래퍼 클래스를 작성하여 호출을 전달할 수 있습니다.

+0

"래퍼 클래스"는 제가 제거하려고하는 것입니다, 어쨌든 고마워요. – Star

관련 문제