/
githubmirror
/
PowerShell
Обзор
Документация
Войти
/
githubmirror
/
PowerShell
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/System.Management.Automation/engine/ComInterop/ErrorArgBuilder.cs
39 строк
1 KB
Dongbo Wang
Refresh and enable the `ComInterop` code in PowerShell (#13304)
08 авг 2020, 02:24
Не верифицирован
08 авг 2020, 02:24
4214800
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Diagnostics; using System.Linq.Expressions; using System.Runtime.InteropServices; namespace System.Management.Automation.ComInterop { internal class ErrorArgBuilder : SimpleArgBuilder { internal ErrorArgBuilder(Type parameterType) : base(parameterType) { Debug.Assert(parameterType == typeof(ErrorWrapper)); } internal override Expression Marshal(Expression parameter) { // parameter.ErrorCode return Expression.Property( Helpers.Convert(base.Marshal(parameter), typeof(ErrorWrapper)), nameof(ErrorWrapper.ErrorCode) ); } internal override Expression UnmarshalFromRef(Expression value) { // new ErrorWrapper(value) return base.UnmarshalFromRef( Expression.New( typeof(ErrorWrapper).GetConstructor(new Type[] { typeof(int) }), value ) ); } } }