Luc*_*oli 7 c# vb6 com dynamic createinstance
您好,有一个 vb6 项目“PROJVB6”,其类“CLASSVB6”包含以下内容:
...
Public Type ActualParametersType_DOCUMENTI
Codice As Variant
Numreg As Variant
End Type
...
Private Gvar_ActualParameters As ActualParametersType_DOCUMENTI
...
Public Property Let ActualParameters(RHS As ActualParametersType_DOCUMENTI)
On Error Resume Next
Gvar_ActualParameters = RHS
End Property
Public Property Get ActualParameters() As ActualParametersType_DOCUMENTI
On Error Resume Next
ActualParameters = Gvar_ActualParameters
End Property
Run Code Online (Sandbox Code Playgroud)
我有另一个 C# 项目,它没有引用 vb6 项目,但需要使用它。我尝试过:
var iet = Type.GetTypeFromProgID("PROJVB6.CLASSVB6");
dynamic CalledProgram = Activator.CreateInstance(iet);
Run Code Online (Sandbox Code Playgroud)
它有效。但是如果我尝试使用以下方法获取 ActualParameters 属性:
dynamic a = CalledProgram.ActualParameters();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
指定的记录无法映射到托管值类。
我怎样才能访问ActualParameter以获取Codice或Numreg的设置值而不生成错误?
谢谢
问题是ActualParameters属性而不是方法。
所以这是正确的:
// dynamic a = CalledProgram.ActualParameters();
// ^^ wrong
dynamic a = CalledProgram.ActualParameters;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |