<PackageReference Include="Microsoft.CSharp" Version="4.4.0" />

CSharpSetMemberBinder

using System; using System.Collections.Generic; using System.Dynamic; namespace Microsoft.CSharp.RuntimeBinder { internal sealed class CSharpSetMemberBinder : SetMemberBinder { private bool _bIsCompoundAssignment; private bool _isChecked; private Type _callingContext; private List<CSharpArgumentInfo> _argumentInfo; private RuntimeBinder _binder; internal bool IsCompoundAssignment => _bIsCompoundAssignment; internal bool IsChecked => _isChecked; internal Type CallingContext => _callingContext; internal IList<CSharpArgumentInfo> ArgumentInfo => _argumentInfo.AsReadOnly(); public CSharpSetMemberBinder(string name, bool isCompoundAssignment, bool isChecked, Type callingContext, IEnumerable<CSharpArgumentInfo> argumentInfo) : base(name, false) { _bIsCompoundAssignment = isCompoundAssignment; _isChecked = isChecked; _callingContext = callingContext; _argumentInfo = BinderHelper.ToList(argumentInfo); _binder = RuntimeBinder.GetInstance(); } public override DynamicMetaObject FallbackSetMember(DynamicMetaObject target, DynamicMetaObject value, DynamicMetaObject errorSuggestion) { return BinderHelper.Bind(this, _binder, new DynamicMetaObject[2] { target, value }, _argumentInfo, errorSuggestion); } } }