mirror of
https://github.com/aphrody-labs/PowerShell.git
synced 2026-10-17 12:45:47 +00:00
This reverts the `if !CORECLR ... #endif` guard surrounding FullCLR files by applying the original diff from the `source-depot` branch, thus the accidentally overwritten BOMs were restored as well.
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
/********************************************************************++
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
--********************************************************************/
|
|
|
|
#if !SILVERLIGHT
|
|
|
|
#if !CLR2
|
|
using System.Linq.Expressions;
|
|
#else
|
|
using Microsoft.Scripting.Ast;
|
|
#endif
|
|
|
|
namespace System.Management.Automation.ComInterop {
|
|
/// <summary>
|
|
/// ArgBuilder provides an argument value used by the MethodBinder. One ArgBuilder exists for each
|
|
/// physical parameter defined on a method.
|
|
///
|
|
/// Contrast this with ParameterWrapper which represents the logical argument passed to the method.
|
|
/// </summary>
|
|
internal abstract class ArgBuilder {
|
|
/// <summary>
|
|
/// Provides the Expression which provides the value to be passed to the argument.
|
|
/// </summary>
|
|
internal abstract Expression Marshal(Expression parameter);
|
|
|
|
/// <summary>
|
|
/// Provides the Expression which provides the value to be passed to the argument.
|
|
/// This method is called when result is intended to be used ByRef.
|
|
/// </summary>
|
|
internal virtual Expression MarshalToRef(Expression parameter) {
|
|
return Marshal(parameter);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Provides an Expression which will update the provided value after a call to the method.
|
|
/// May return null if no update is required.
|
|
/// </summary>
|
|
internal virtual Expression UnmarshalFromRef(Expression newValue) {
|
|
return newValue;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|