Files
27Aug2021-Cpp2IL-Dump/System.Core/System/Runtime/CompilerServices/CallSiteBinder.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

140 lines
6.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq.Expressions;
using Cpp2IlInjected;
namespace System.Runtime.CompilerServices
{
/// <summary>Class responsible for runtime binding of the dynamic operations on the dynamic call site.</summary>
// Token: 0x0200025C RID: 604
[Token(Token = "0x200025C")]
public abstract class CallSiteBinder
{
/// <summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.CallSiteBinder" /> class.</summary>
// Token: 0x06000C0B RID: 3083 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000C0B")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected CallSiteBinder()
{
}
/// <summary>Gets a label that can be used to cause the binding to be updated. It indicates that the expression's binding is no longer valid. This is typically used when the "version" of a dynamic object has changed.</summary>
/// <returns>The <see cref="T:System.Linq.Expressions.LabelTarget" /> object representing a label that can be used to trigger the binding update.</returns>
// Token: 0x17000263 RID: 611
// (get) Token: 0x06000C0C RID: 3084 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x17000263")]
public static LabelTarget UpdateLabel
{
[Token(Token = "0x6000C0C")]
[Address(RVA = "0x10D6D10", Offset = "0x10D5D10", VA = "0x1810D6D10")]
[CompilerGenerated]
get
{
return null;
}
}
/// <summary>Performs the runtime binding of the dynamic operation on a set of arguments.</summary>
/// <param name="args">An array of arguments to the dynamic operation.</param>
/// <param name="parameters">The array of <see cref="T:System.Linq.Expressions.ParameterExpression" /> instances that represent the parameters of the call site in the binding process.</param>
/// <param name="returnLabel">A LabelTarget used to return the result of the dynamic binding.</param>
/// <returns>An Expression that performs tests on the dynamic operation arguments, and performs the dynamic operation if the tests are valid. If the tests fail on subsequent occurrences of the dynamic operation, Bind will be called again to produce a new <see cref="T:System.Linq.Expressions.Expression" /> for the new argument types.</returns>
// Token: 0x06000C0D RID: 3085
[Token(Token = "0x6000C0D")]
[Address(Slot = "4")]
public abstract Expression Bind(object[] args, ReadOnlyCollection<ParameterExpression> parameters, LabelTarget returnLabel);
/// <summary>Provides low-level runtime binding support. Classes can override this and provide a direct delegate for the implementation of rule. This can enable saving rules to disk, having specialized rules available at runtime, or providing a different caching policy.</summary>
/// <param name="site">The CallSite the bind is being performed for.</param>
/// <param name="args">The arguments for the binder.</param>
/// <typeparam name="T">The target type of the CallSite.</typeparam>
/// <returns>A new delegate which replaces the CallSite Target.</returns>
// Token: 0x06000C0E RID: 3086 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x6000C0E")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "5")]
public virtual T BindDelegate<T>(CallSite<T> site, object[] args) where T : class
{
return null;
}
// Token: 0x06000C0F RID: 3087 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x6000C0F")]
[Address(RVA = "0x1E52130", Offset = "0x1E51130", VA = "0x181E52130")]
internal T BindCore<T>(CallSite<T> site, object[] args) where T : class
{
return null;
}
/// <summary>Adds a target to the cache of known targets. The cached targets will be scanned before calling BindDelegate to produce the new rule.</summary>
/// <param name="target">The target delegate to be added to the cache.</param>
/// <typeparam name="T">The type of target being added.</typeparam>
// Token: 0x06000C10 RID: 3088 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000C10")]
[Address(RVA = "0x1FD5420", Offset = "0x1FD4420", VA = "0x181FD5420")]
protected void CacheTarget<T>(T target) where T : class
{
}
// Token: 0x06000C11 RID: 3089 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x6000C11")]
[Address(RVA = "0x27D16E0", Offset = "0x27D06E0", VA = "0x1827D16E0")]
private static Expression<T> Stitch<T>(Expression binding, CallSiteBinder.LambdaSignature<T> signature) where T : class
{
return null;
}
// Token: 0x06000C12 RID: 3090 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x6000C12")]
[Address(RVA = "0x25EF010", Offset = "0x25EE010", VA = "0x1825EF010")]
internal RuleCache<T> GetRuleCache<T>() where T : class
{
return null;
}
// Token: 0x04000498 RID: 1176
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4000498")]
internal Dictionary<Type, object> Cache;
// Token: 0x0200025D RID: 605
[Token(Token = "0x200025D")]
private sealed class LambdaSignature<T> where T : class
{
// Token: 0x17000264 RID: 612
// (get) Token: 0x06000C14 RID: 3092 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x17000264")]
internal static CallSiteBinder.LambdaSignature<T> Instance
{
[Token(Token = "0x6000C14")]
[Address(RVA = "0x2F30880", Offset = "0x2F2F880", VA = "0x182F30880")]
get
{
return null;
}
}
// Token: 0x06000C15 RID: 3093 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000C15")]
[Address(RVA = "0x2F30520", Offset = "0x2F2F520", VA = "0x182F30520")]
private LambdaSignature()
{
}
// Token: 0x0400049A RID: 1178
[Token(Token = "0x400049A")]
private static CallSiteBinder.LambdaSignature<T> s_instance;
// Token: 0x0400049B RID: 1179
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400049B")]
internal readonly ReadOnlyCollection<ParameterExpression> Parameters;
// Token: 0x0400049C RID: 1180
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400049C")]
internal readonly LabelTarget ReturnLabel;
}
}
}