MegaBites-AI/Windows-powershell
0372
1// Licensed to the .NET Foundation under one or more agreements.2// The .NET Foundation licenses this file to you under the MIT license.3 4using System;5using System.Diagnostics;6using System.Linq.Expressions;7using System.Runtime.InteropServices;8 9namespace System.Management.Automation.ComInterop10{11 internal class ErrorArgBuilder : SimpleArgBuilder12 {13 internal ErrorArgBuilder(Type parameterType)14 : base(parameterType)15 {16 Debug.Assert(parameterType == typeof(ErrorWrapper));17 }18 19 internal override Expression Marshal(Expression parameter)20 {21 // parameter.ErrorCode22 return Expression.Property(23 Helpers.Convert(base.Marshal(parameter), typeof(ErrorWrapper)),24 nameof(ErrorWrapper.ErrorCode)25 );26 }27 28 internal override Expression UnmarshalFromRef(Expression value)29 {30 // new ErrorWrapper(value)31 return base.UnmarshalFromRef(32 Expression.New(33 typeof(ErrorWrapper).GetConstructor(new Type[] { typeof(int) }),34 value35 )36 );37 }38 }39}40 