Skip to content

Invoke method via .NET Adapter fails when ignoring argument for an optional parameter of value type #7534

@daxian-dbw

Description

@daxian-dbw

Invoke method via .NET Adapter fails when ignoring argument for an optional parameter of value type

Steps to reproduce

$c =@'
public class Zoo {
    public string GetName(string str, Here here = default) { return str; }
}

public struct Here
{
    public string Name;
    public int index;
}
'@

Add-Type $c
$z = [Zoo]::new()
$z.psobject.Methods["GetName"].Invoke("Hello")

Expected behavior

Success just like running $z.GetName("Hello"):

PS> $z.GetName("Hello")
Hello

Actual behavior

PS> $z.psobject.Methods["GetName"].Invoke("Hello")
Exception calling "GetName" with "2" argument(s): "Object reference not set to an instance of an object."
At line:1 char:1
+ $z.psobject.Methods["GetName"].Invoke("Hello")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.1.0-preview.4
PSEdition                      Core
GitCommitId                    6.1.0-preview.4-73-g0ee369a311fb2ddf44a86e924fa821bf0ee9ed4f
OS                             Microsoft Windows 10.0.17134
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Metadata

Metadata

Assignees

Labels

Issue-BugIssue has been identified as a bug in the productResolution-No ActivityIssue has had no activity for 6 months or moreWG-Enginecore PowerShell engine, interpreter, and runtime

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions