using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq.Expressions;
using Cpp2IlInjected;
namespace System.Runtime.CompilerServices
{
/// Class responsible for runtime binding of the dynamic operations on the dynamic call site.
// Token: 0x0200025C RID: 604
[Token(Token = "0x200025C")]
public abstract class CallSiteBinder
{
/// Initializes a new instance of the class.
// Token: 0x06000C0B RID: 3083 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000C0B")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected CallSiteBinder()
{
}
/// 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.
/// The object representing a label that can be used to trigger the binding update.
// 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;
}
}
/// Performs the runtime binding of the dynamic operation on a set of arguments.
/// An array of arguments to the dynamic operation.
/// The array of instances that represent the parameters of the call site in the binding process.
/// A LabelTarget used to return the result of the dynamic binding.
/// 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 for the new argument types.
// Token: 0x06000C0D RID: 3085
[Token(Token = "0x6000C0D")]
[Address(Slot = "4")]
public abstract Expression Bind(object[] args, ReadOnlyCollection parameters, LabelTarget returnLabel);
/// 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.
/// The CallSite the bind is being performed for.
/// The arguments for the binder.
/// The target type of the CallSite.
/// A new delegate which replaces the CallSite Target.
// 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(CallSite 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(CallSite site, object[] args) where T : class
{
return null;
}
/// Adds a target to the cache of known targets. The cached targets will be scanned before calling BindDelegate to produce the new rule.
/// The target delegate to be added to the cache.
/// The type of target being added.
// Token: 0x06000C10 RID: 3088 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000C10")]
[Address(RVA = "0x1FD5420", Offset = "0x1FD4420", VA = "0x181FD5420")]
protected void CacheTarget(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 Stitch(Expression binding, CallSiteBinder.LambdaSignature 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 GetRuleCache() where T : class
{
return null;
}
// Token: 0x04000498 RID: 1176
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4000498")]
internal Dictionary Cache;
// Token: 0x0200025D RID: 605
[Token(Token = "0x200025D")]
private sealed class LambdaSignature where T : class
{
// Token: 0x17000264 RID: 612
// (get) Token: 0x06000C14 RID: 3092 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x17000264")]
internal static CallSiteBinder.LambdaSignature 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 s_instance;
// Token: 0x0400049B RID: 1179
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400049B")]
internal readonly ReadOnlyCollection Parameters;
// Token: 0x0400049C RID: 1180
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x400049C")]
internal readonly LabelTarget ReturnLabel;
}
}
}