Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
//
// AssemblyInfo.cs
//
// Authors:
// Marek Safar (marek.safar@gmail.com)
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Reflection;
using System.Resources;
using System.Security;
using System.Security.Permissions;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about the assembly
[assembly: AssemblyTitle ("Microsoft.CSharp.dll")]
[assembly: AssemblyDescription ("Microsoft.CSharp.dll")]
[assembly: AssemblyDefaultAlias ("Microsoft.CSharp.dll")]
[assembly: AssemblyCompany (Consts.MonoCompany)]
[assembly: AssemblyProduct (Consts.MonoProduct)]
[assembly: AssemblyCopyright (Consts.MonoCopyright)]
[assembly: AssemblyVersion (Consts.FxVersion)]
[assembly: SatelliteContractVersion (Consts.FxVersion)]
[assembly: AssemblyInformationalVersion (Consts.FxFileVersion)]
[assembly: AssemblyFileVersion (Consts.FxFileVersion)]
[assembly: NeutralResourcesLanguage ("en-US")]
[assembly: CLSCompliant (true)]
[assembly: AssemblyDelaySign (true)]
[assembly: AssemblyKeyFile ("../msfinal.pub")]
[assembly: SecurityCritical]
[assembly: ComVisible (false)]

View File

@@ -0,0 +1,4 @@
2009-06-29 Marek Safar <marek.safar@gmail.com>
* ChangeLog: Added

View File

@@ -0,0 +1,7 @@
2009-12-08 Marek Safar <marek.safar@gmail.com>
* Makefile: Replace dmcs reference with Mono.CSharp.
2009-06-29 Marek Safar <marek.safar@gmail.com>
* Initial commit.

View File

@@ -0,0 +1,403 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="Binder" FullName="Microsoft.CSharp.RuntimeBinder.Binder">
<TypeSignature Language="C#" Value="public static class Binder" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Binder extends System.Object" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Contains factory methods to create dynamic call site binders for CSharp.</para>
</summary>
</Docs>
<Members>
<Member MemberName="BinaryOperation">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder BinaryOperation (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, System.Linq.Expressions.ExpressionType operation, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder BinaryOperation(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, valuetype System.Linq.Expressions.ExpressionType operation, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="operation" Type="System.Linq.Expressions.ExpressionType" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp binary operation binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp binary operation binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="operation">
<attribution license="cc4" from="Microsoft" modified="false" />The binary operation kind.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="Convert">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder Convert (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, Type type, Type context);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder Convert(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, class System.Type type, class System.Type context) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="type" Type="System.Type" />
<Parameter Name="context" Type="System.Type" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp convert binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp convert binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="type">
<attribution license="cc4" from="Microsoft" modified="false" />The type to convert to.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
</Docs>
</Member>
<Member MemberName="GetIndex">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder GetIndex (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder GetIndex(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp get index binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp get index binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="GetMember">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder GetMember (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder GetMember(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="name" Type="System.String" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp get member binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp get member binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="name">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the member to get.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="Invoke">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder Invoke (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder Invoke(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp invoke binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp invoke binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="InvokeConstructor">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder InvokeConstructor (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder InvokeConstructor(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp invoke constructor binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp invoke constructor binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="InvokeMember">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder InvokeMember (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, System.Collections.Generic.IEnumerable&lt;Type&gt; typeArguments, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder InvokeMember(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, class System.Collections.Generic.IEnumerable`1&lt;class System.Type&gt; typeArguments, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="name" Type="System.String" />
<Parameter Name="typeArguments" Type="System.Collections.Generic.IEnumerable&lt;System.Type&gt;" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp invoke member binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp invoke member binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="name">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the member to invoke.</param>
<param name="typeArguments">
<attribution license="cc4" from="Microsoft" modified="false" />The list of type arguments specified for this invoke.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="IsEvent">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder IsEvent (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, Type context);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder IsEvent(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, class System.Type context) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="name" Type="System.String" />
<Parameter Name="context" Type="System.Type" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp is event binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp is event binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="name">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the event to look for.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
</Docs>
</Member>
<Member MemberName="SetIndex">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder SetIndex (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder SetIndex(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp set index binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp set index binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="SetMember">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder SetMember (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder SetMember(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, string name, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="name" Type="System.String" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp set member binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp set member binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="name">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the member to set.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
<Member MemberName="UnaryOperation">
<MemberSignature Language="C#" Value="public static System.Runtime.CompilerServices.CallSiteBinder UnaryOperation (Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, System.Linq.Expressions.ExpressionType operation, Type context, System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.CompilerServices.CallSiteBinder UnaryOperation(valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags flags, valuetype System.Linq.Expressions.ExpressionType operation, class System.Type context, class System.Collections.Generic.IEnumerable`1&lt;class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt; argumentInfo) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.CompilerServices.CallSiteBinder</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags" />
<Parameter Name="operation" Type="System.Linq.Expressions.ExpressionType" />
<Parameter Name="context" Type="System.Type" />
<Parameter Name="argumentInfo" Type="System.Collections.Generic.IEnumerable&lt;Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&gt;" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new CSharp unary operation binder.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a new CSharp unary operation binder.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags with which to initialize the binder.</param>
<param name="operation">
<attribution license="cc4" from="Microsoft" modified="false" />The unary operation kind.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Type" /> that indicates where this operation is used.</param>
<param name="argumentInfo">
<attribution license="cc4" from="Microsoft" modified="false" />The sequence of <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> instances for the arguments to this operation.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="CSharpArgumentInfo" FullName="Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo">
<TypeSignature Language="C#" Value="public sealed class CSharpArgumentInfo" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit CSharpArgumentInfo extends System.Object" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents information about C# dynamic operations that are specific to particular arguments at a call site. Instances of this class are generated by the C# compiler.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Create">
<MemberSignature Language="C#" Value="public static Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo Create (Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags flags, string name);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo Create(valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags flags, string name) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags" />
<Parameter Name="name" Type="System.String" />
</Parameters>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> class.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" /> class.</para>
</returns>
<param name="flags">
<attribution license="cc4" from="Microsoft" modified="false" />The flags for the argument.</param>
<param name="name">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the argument, if named; otherwise null.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="CSharpArgumentInfoFlags" FullName="Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags">
<TypeSignature Language="C#" Value="public enum CSharpArgumentInfoFlags" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed CSharpArgumentInfoFlags extends System.Enum" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Attributes>
<Attribute>
<AttributeName>System.Flags</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents information about C# dynamic operations that are specific to particular arguments at a call site. Instances of this class are generated by the C# compiler.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Constant">
<MemberSignature Language="C#" Value="Constant" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags Constant = int32(2)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument is a constant.</para>
</summary>
</Docs>
</Member>
<Member MemberName="IsOut">
<MemberSignature Language="C#" Value="IsOut" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags IsOut = int32(16)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument is passed to an out parameter.</para>
</summary>
</Docs>
</Member>
<Member MemberName="IsRef">
<MemberSignature Language="C#" Value="IsRef" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags IsRef = int32(8)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument is passed to a ref parameter.</para>
</summary>
</Docs>
</Member>
<Member MemberName="IsStaticType">
<MemberSignature Language="C#" Value="IsStaticType" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags IsStaticType = int32(32)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument is a <see cref="T:System.Type" /> indicating an actual type name used in source. Used only for target objects in static calls.</para>
</summary>
</Docs>
</Member>
<Member MemberName="NamedArgument">
<MemberSignature Language="C#" Value="NamedArgument" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags NamedArgument = int32(4)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument is a named argument.</para>
</summary>
</Docs>
</Member>
<Member MemberName="None">
<MemberSignature Language="C#" Value="None" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags None = int32(0)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>No additional information to represent.</para>
</summary>
</Docs>
</Member>
<Member MemberName="UseCompileTimeType">
<MemberSignature Language="C#" Value="UseCompileTimeType" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags UseCompileTimeType = int32(1)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The argument's compile-time type should be considered during binding.</para>
</summary>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="CSharpBinderFlags" FullName="Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags">
<TypeSignature Language="C#" Value="public enum CSharpBinderFlags" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed CSharpBinderFlags extends System.Enum" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Attributes>
<Attribute>
<AttributeName>System.Flags</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents information about C# dynamic operations that are not specific to particular arguments at a call site. Instances of this class are generated by the C# compiler.</para>
</summary>
</Docs>
<Members>
<Member MemberName="BinaryOperationLogical">
<MemberSignature Language="C#" Value="BinaryOperationLogical" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags BinaryOperationLogical = int32(8)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder represents a logical AND or logical OR that is part of a conditional logical operator evaluation.</para>
</summary>
</Docs>
</Member>
<Member MemberName="CheckedContext">
<MemberSignature Language="C#" Value="CheckedContext" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags CheckedContext = int32(1)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The evaluation of this binder happens in a checked context.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ConvertArrayIndex">
<MemberSignature Language="C#" Value="ConvertArrayIndex" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags ConvertArrayIndex = int32(32)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder represents an implicit conversion for use in an array creation expression.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ConvertExplicit">
<MemberSignature Language="C#" Value="ConvertExplicit" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags ConvertExplicit = int32(16)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder represents an explicit conversion.</para>
</summary>
</Docs>
</Member>
<Member MemberName="InvokeSimpleName">
<MemberSignature Language="C#" Value="InvokeSimpleName" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags InvokeSimpleName = int32(2)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder represents an invoke on a simple name.</para>
</summary>
</Docs>
</Member>
<Member MemberName="InvokeSpecialName">
<MemberSignature Language="C#" Value="InvokeSpecialName" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags InvokeSpecialName = int32(4)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder represents an invoke on a specialname.</para>
</summary>
</Docs>
</Member>
<Member MemberName="None">
<MemberSignature Language="C#" Value="None" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags None = int32(0)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>There is no additional information required for this binder.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ResultDiscarded">
<MemberSignature Language="C#" Value="ResultDiscarded" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags ResultDiscarded = int32(256)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The binder is used in a position that does not require a result, and can therefore bind to a void returning method.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ResultIndexed">
<MemberSignature Language="C#" Value="ResultIndexed" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags ResultIndexed = int32(64)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The result of any bind is going to be indexed get a set index or get index binder.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ValueFromCompoundAssignment">
<MemberSignature Language="C#" Value="ValueFromCompoundAssignment" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags ValueFromCompoundAssignment = int32(128)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The value in this set index or set member comes a compound assignment operator.</para>
</summary>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,217 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="RuntimeBinderException" FullName="Microsoft.CSharp.RuntimeBinder.RuntimeBinderException">
<TypeSignature Language="C#" Value="public class RuntimeBinderException : Exception" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit RuntimeBinderException extends System.Exception" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Exception</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Exceptions of this kind differ from <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> in that <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> represents a failure to bind in the sense of a usual compiler error, whereas <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> represents a malfunctioning of the runtime binder itself.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents an error that occurs when a dynamic bind in the C# runtime binder is processed.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderException ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor initializes the <see cref="P:System.Exception.Message" /> property of the new instance to a system-supplied message that describes the error, such as "DefaultMessageDisplayedByParameterlessCtorWriterMustSupply" This message takes into account the current system culture.</para>
<para>The following table shows the initial property values for an instance of <see cref="T:System.InsufficientMemoryException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null.</para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The localized error message string. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> class.</para>
</summary>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderException (string message);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string message) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="message" Type="System.String" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The following table shows the initial property values for an instance of <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null.</para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The error message string specified in <paramref name="message" />. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> class that has a specified error message.</para>
</summary>
<param name="message">
<attribution license="cc4" from="Microsoft" modified="false" />The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected RuntimeBinderException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor(class System.Runtime.Serialization.SerializationInfo info, valuetype System.Runtime.Serialization.StreamingContext context) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
<Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor is called during deserialization to reconstitute the exception object transmitted over a stream.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> class that has serialized data.</para>
</summary>
<param name="info">
<attribution license="cc4" from="Microsoft" modified="false" />The object that holds the serialized object data about the exception being thrown.. </param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The contextual information about the source or destination. </param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderException (string message, Exception innerException);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string message, class System.Exception innerException) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="message" Type="System.String" />
<Parameter Name="innerException" Type="System.Exception" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An exception that is thrown as a direct result of a previous exception should include a reference to the previous exception in the <see cref="P:System.Exception.InnerException" /> property. The <see cref="P:System.Exception.InnerException" /> property returns the same value that is passed into the constructor, or null if the <see cref="P:System.Exception.InnerException" /> property does not supply the inner exception value to the constructor.</para>
<para>The following table shows the initial property values for an instance of <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null. </para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The error message string specified in <paramref name="message" />. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> class that has a specified error message and a reference to the inner exception that is the cause of this exception.</para>
</summary>
<param name="message">
<attribution license="cc4" from="Microsoft" modified="false" />The error message that explains the reason for the exception.</param>
<param name="innerException">
<attribution license="cc4" from="Microsoft" modified="false" />The exception that is the cause of the current exception, or a null reference if no inner exception is specified.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,217 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="RuntimeBinderInternalCompilerException" FullName="Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException">
<TypeSignature Language="C#" Value="public class RuntimeBinderInternalCompilerException : Exception" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit RuntimeBinderInternalCompilerException extends System.Exception" />
<AssemblyInfo>
<AssemblyName>Microsoft.CSharp</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Exception</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Exceptions of this kind differ from <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> in that <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException" /> represents a failure to bind in the sense of a usual compiler error, whereas <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> represents a malfunctioning of the runtime binder itself.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents an error that occurs when a dynamic bind in the C# runtime binder is processed.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderInternalCompilerException ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor initializes the <see cref="P:System.Exception.Message" /> property of the new instance to a system-supplied message that describes the error, such as "DefaultMessageDisplayedByParameterlessCtorWriterMustSupply" This message takes into account the current system culture.</para>
<para>The following table shows the initial property values for an instance of <see cref="T:System.InsufficientMemoryException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null.</para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The localized error message string. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> class with a system-supplied message that describes the error.</para>
</summary>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderInternalCompilerException (string message);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string message) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="message" Type="System.String" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The following table shows the initial property values for an instance of <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null.</para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The error message string specified in <paramref name="message" />. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> class with a specified message that describes the error.</para>
</summary>
<param name="message">
<attribution license="cc4" from="Microsoft" modified="false" />The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected RuntimeBinderInternalCompilerException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor(class System.Runtime.Serialization.SerializationInfo info, valuetype System.Runtime.Serialization.StreamingContext context) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
<Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor is called during deserialization to reconstitute the exception object transmitted over a stream. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> class with serialized data.</para>
</summary>
<param name="info">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RuntimeBinderInternalCompilerException (string message, Exception innerException);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string message, class System.Exception innerException) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="message" Type="System.String" />
<Parameter Name="innerException" Type="System.Exception" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An exception that is thrown as a direct result of a previous exception should include a reference to the previous exception in the <see cref="P:System.Exception.InnerException" /> property. The <see cref="P:System.Exception.InnerException" /> property returns the same value that is passed into the constructor, or null if the <see cref="P:System.Exception.InnerException" /> property does not supply the inner exception value to the constructor.</para>
<para>The following table shows the initial property values for an instance of <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" />.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Property </para>
</term>
<description>
<para>Value </para>
</description>
</item>
</listheader>
<item>
<term>
<para>
<see cref="P:System.Exception.InnerException" />
</para>
</term>
<description>
<para>null. </para>
</description>
</item>
<item>
<term>
<para>
<see cref="P:System.Exception.Message" />
</para>
</term>
<description>
<para>The error message string specified in <paramref name="message" />. </para>
</description>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException" /> class that has a specified error message and a reference to the inner exception that is the cause of this exception.</para>
</summary>
<param name="message">
<attribution license="cc4" from="Microsoft" modified="false" />The error message that explains the reason for the exception.</param>
<param name="innerException">
<attribution license="cc4" from="Microsoft" modified="false" />The exception that is the cause of the current exception, or a null reference if no inner exception is specified.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,67 @@
<Overview>
<Assemblies>
<Assembly Name="Microsoft.CSharp" Version="4.0.0.0">
<AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 07 d1 fa 57 c4 ae d9 f0 a3 2e 84 aa 0f ae fd 0d e9 e8 fd 6a ec 8f 87 fb 03 76 6c 83 4c 99 92 1e b2 3b e7 9a d9 d5 dc c1 dd 9a d2 36 13 21 02 90 0b 72 3c f9 80 95 7f c4 e1 77 10 8f c6 07 77 4f 29 e8 32 0e 92 ea 05 ec e4 e8 21 c0 a5 ef e8 f1 64 5c 4c 0c 93 c1 ab 99 28 5d 62 2c aa 65 2c 1d fa d6 3d 74 5d 6f 2d e5 f1 7e 5e af 0f c4 96 3d 26 1c 8a 12 43 65 18 20 6d c0 93 34 4d 5a d2 93 ]</AssemblyPublicKey>
<Attributes>
<Attribute>
<AttributeName>System.CLSCompliant(true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyCompany("Mono development team")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyCopyright("(c) Various Mono authors")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyDefaultAlias("Microsoft.CSharp.dll")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyDescription("Microsoft.CSharp.dll")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyFileVersion("4.0.30319.17020")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyInformationalVersion("4.0.30319.17020")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyProduct("Mono Common Language Infrastructure")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyTitle("Microsoft.CSharp.dll")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Resources.NeutralResourcesLanguage("en-US")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Resources.SatelliteContractVersion("4.0.0.0")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Security.SecurityCritical</AttributeName>
</Attribute>
</Attributes>
</Assembly>
</Assemblies>
<Remarks>To be added.</Remarks>
<Copyright>To be added.</Copyright>
<Types>
<Namespace Name="Microsoft.CSharp.RuntimeBinder">
<Type Name="Binder" Kind="Class" />
<Type Name="CSharpArgumentInfo" Kind="Class" />
<Type Name="CSharpArgumentInfoFlags" Kind="Enumeration" />
<Type Name="CSharpBinderFlags" Kind="Enumeration" />
<Type Name="RuntimeBinderException" Kind="Class" />
<Type Name="RuntimeBinderInternalCompilerException" Kind="Class" />
</Namespace>
</Types>
<Title>Microsoft.CSharp</Title>
</Overview>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Namespace Name="Microsoft.CSharp.RuntimeBinder">
<Docs>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="N:Microsoft.CSharp.RuntimeBinder" /> namespace provides classes and interfaces that support interoperation between Dynamic Language Runtime and C#.</para>
</summary>
</Docs>
</Namespace>

View File

@@ -0,0 +1,10 @@
thisdir = class/Microsoft.CSharp
SUBDIRS =
include ../../build/rules.make
LIBRARY = Microsoft.CSharp.dll
LIB_MCS_FLAGS = -r:System.Core.dll -r:Mono.CSharp.dll
include ../../build/library.make

View File

@@ -0,0 +1,96 @@
//
// Binder.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Linq.Expressions;
using System.Reflection;
namespace Microsoft.CSharp.RuntimeBinder
{
public static class Binder
{
public static CallSiteBinder BinaryOperation (CSharpBinderFlags flags, ExpressionType operation, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpBinaryOperationBinder (operation, flags, context, argumentInfo);
}
public static CallSiteBinder Convert (CSharpBinderFlags flags, Type type, Type context)
{
return new CSharpConvertBinder (type, context, flags);
}
public static CallSiteBinder GetIndex (CSharpBinderFlags flags, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpGetIndexBinder (context, argumentInfo);
}
public static CallSiteBinder GetMember (CSharpBinderFlags flags, string name, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpGetMemberBinder (name, context, argumentInfo);
}
public static CallSiteBinder Invoke (CSharpBinderFlags flags, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpInvokeBinder (flags, context, argumentInfo);
}
public static CallSiteBinder InvokeConstructor (CSharpBinderFlags flags, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
// What are flags for here
return new CSharpInvokeConstructorBinder (context, argumentInfo);
}
public static CallSiteBinder InvokeMember (CSharpBinderFlags flags, string name, IEnumerable<Type> typeArguments, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpInvokeMemberBinder (flags, name, context, typeArguments, argumentInfo);
}
public static CallSiteBinder IsEvent (CSharpBinderFlags flags, string name, Type context)
{
return new CSharpIsEventBinder (name, context);
}
public static CallSiteBinder SetIndex (CSharpBinderFlags flags, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpSetIndexBinder (flags, context, argumentInfo);
}
public static CallSiteBinder SetMember (CSharpBinderFlags flags, string name, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpSetMemberBinder (flags, name, context, argumentInfo);
}
public static CallSiteBinder UnaryOperation (CSharpBinderFlags flags, ExpressionType operation, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
{
return new CSharpUnaryOperationBinder (operation, flags, context, argumentInfo);
}
}
}

View File

@@ -0,0 +1,83 @@
//
// CSharpArgumentInfo.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Linq;
using Compiler = Mono.CSharp;
namespace Microsoft.CSharp.RuntimeBinder
{
public sealed class CSharpArgumentInfo
{
readonly CSharpArgumentInfoFlags flags;
readonly string name;
CSharpArgumentInfo (CSharpArgumentInfoFlags flags, string name)
{
this.flags = flags;
this.name = name;
}
public static CSharpArgumentInfo Create (CSharpArgumentInfoFlags flags, string name)
{
return new CSharpArgumentInfo (flags, name);
}
internal Compiler.Argument.AType ArgumentModifier {
get {
if ((flags & CSharpArgumentInfoFlags.IsRef) != 0)
return Compiler.Argument.AType.Ref;
if ((flags & CSharpArgumentInfoFlags.IsOut) != 0)
return Compiler.Argument.AType.Out;
return Compiler.Argument.AType.None;
}
}
internal static CallInfo CreateCallInfo (IEnumerable<CSharpArgumentInfo> argumentInfo, int skipCount)
{
var named = from arg in argumentInfo.Skip (skipCount) where arg.IsNamed select arg.name;
return new CallInfo (Math.Max (0, argumentInfo.Count () - skipCount), named);
}
internal CSharpArgumentInfoFlags Flags {
get { return flags; }
}
internal bool IsNamed {
get { return (flags & CSharpArgumentInfoFlags.NamedArgument) != 0; }
}
internal string Name {
get { return name; }
}
}
}

View File

@@ -0,0 +1,44 @@
//
// CSharpArgumentInfoFlags.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
namespace Microsoft.CSharp.RuntimeBinder
{
[Flags]
public enum CSharpArgumentInfoFlags
{
None = 0,
UseCompileTimeType = 1,
Constant = 2,
NamedArgument = 4,
IsRef = 8,
IsOut = 16,
IsStaticType = 32
}
}

View File

@@ -0,0 +1,160 @@
//
// CSharpBinaryOperationBinder.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
using Compiler = Mono.CSharp;
namespace Microsoft.CSharp.RuntimeBinder
{
class CSharpBinaryOperationBinder : BinaryOperationBinder
{
IList<CSharpArgumentInfo> argumentInfo;
readonly CSharpBinderFlags flags;
readonly Type context;
public CSharpBinaryOperationBinder (ExpressionType operation, CSharpBinderFlags flags, Type context, IEnumerable<CSharpArgumentInfo> argumentInfo)
: base (operation)
{
this.argumentInfo = new ReadOnlyCollectionBuilder<CSharpArgumentInfo> (argumentInfo);
if (this.argumentInfo.Count != 2)
throw new ArgumentException ("Binary operation requires 2 arguments");
this.flags = flags;
this.context = context;
}
Compiler.Binary.Operator GetOperator (out bool isCompound)
{
isCompound = false;
switch (Operation) {
case ExpressionType.Add:
return Compiler.Binary.Operator.Addition;
case ExpressionType.AddAssign:
isCompound = true;
return Compiler.Binary.Operator.Addition;
case ExpressionType.And:
return (flags & CSharpBinderFlags.BinaryOperationLogical) != 0 ?
Compiler.Binary.Operator.LogicalAnd : Compiler.Binary.Operator.BitwiseAnd;
case ExpressionType.AndAssign:
isCompound = true;
return Compiler.Binary.Operator.BitwiseAnd;
case ExpressionType.Divide:
return Compiler.Binary.Operator.Division;
case ExpressionType.DivideAssign:
isCompound = true;
return Compiler.Binary.Operator.Division;
case ExpressionType.Equal:
return Compiler.Binary.Operator.Equality;
case ExpressionType.ExclusiveOr:
return Compiler.Binary.Operator.ExclusiveOr;
case ExpressionType.ExclusiveOrAssign:
isCompound = true;
return Compiler.Binary.Operator.ExclusiveOr;
case ExpressionType.GreaterThan:
return Compiler.Binary.Operator.GreaterThan;
case ExpressionType.GreaterThanOrEqual:
return Compiler.Binary.Operator.GreaterThanOrEqual;
case ExpressionType.LeftShift:
return Compiler.Binary.Operator.LeftShift;
case ExpressionType.LeftShiftAssign:
isCompound = true;
return Compiler.Binary.Operator.LeftShift;
case ExpressionType.LessThan:
return Compiler.Binary.Operator.LessThan;
case ExpressionType.LessThanOrEqual:
return Compiler.Binary.Operator.LessThanOrEqual;
case ExpressionType.Modulo:
return Compiler.Binary.Operator.Modulus;
case ExpressionType.ModuloAssign:
isCompound = true;
return Compiler.Binary.Operator.Modulus;
case ExpressionType.Multiply:
return Compiler.Binary.Operator.Multiply;
case ExpressionType.MultiplyAssign:
isCompound = true;
return Compiler.Binary.Operator.Multiply;
case ExpressionType.NotEqual:
return Compiler.Binary.Operator.Inequality;
case ExpressionType.Or:
return (flags & CSharpBinderFlags.BinaryOperationLogical) != 0 ?
Compiler.Binary.Operator.LogicalOr : Compiler.Binary.Operator.BitwiseOr;
case ExpressionType.OrAssign:
isCompound = true;
return Compiler.Binary.Operator.BitwiseOr;
case ExpressionType.OrElse:
return Compiler.Binary.Operator.LogicalOr;
case ExpressionType.RightShift:
return Compiler.Binary.Operator.RightShift;
case ExpressionType.RightShiftAssign:
isCompound = true;
return Compiler.Binary.Operator.RightShift;
case ExpressionType.Subtract:
return Compiler.Binary.Operator.Subtraction;
case ExpressionType.SubtractAssign:
isCompound = true;
return Compiler.Binary.Operator.Subtraction;
default:
throw new NotImplementedException (Operation.ToString ());
}
}
public override DynamicMetaObject FallbackBinaryOperation (DynamicMetaObject target, DynamicMetaObject arg, DynamicMetaObject errorSuggestion)
{
var ctx = DynamicContext.Create ();
var left = ctx.CreateCompilerExpression (argumentInfo [0], target);
var right = ctx.CreateCompilerExpression (argumentInfo [1], arg);
bool is_compound;
var oper = GetOperator (out is_compound);
Compiler.Expression expr;
if (is_compound) {
var target_expr = new Compiler.RuntimeValueExpression (target, ctx.ImportType (target.LimitType));
expr = new Compiler.CompoundAssign (oper, target_expr, right, left);
} else {
expr = new Compiler.Binary (oper, left, right);
}
expr = new Compiler.Cast (new Compiler.TypeExpression (ctx.ImportType (ReturnType), Compiler.Location.Null), expr, Compiler.Location.Null);
if ((flags & CSharpBinderFlags.CheckedContext) != 0)
expr = new Compiler.CheckedExpr (expr, Compiler.Location.Null);
var binder = new CSharpBinder (this, expr, errorSuggestion);
binder.AddRestrictions (target);
binder.AddRestrictions (arg);
return binder.Bind (ctx, context);
}
}
}

View File

@@ -0,0 +1,128 @@
//
// CSharpBinder.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Linq.Expressions;
using Compiler = Mono.CSharp;
using System.Reflection;
using System.Collections.Generic;
namespace Microsoft.CSharp.RuntimeBinder
{
class CSharpBinder
{
static ConstructorInfo binder_exception_ctor;
static object resolver = new object ();
DynamicMetaObjectBinder binder;
Compiler.Expression expr;
BindingRestrictions restrictions;
DynamicMetaObject errorSuggestion;
public CSharpBinder (DynamicMetaObjectBinder binder, Compiler.Expression expr, DynamicMetaObject errorSuggestion)
{
this.binder = binder;
this.expr = expr;
this.restrictions = BindingRestrictions.Empty;
this.errorSuggestion = errorSuggestion;
}
public Compiler.ResolveContext.Options ResolveOptions { get; set; }
public void AddRestrictions (DynamicMetaObject arg)
{
restrictions = restrictions.Merge (CreateRestrictionsOnTarget (arg));
}
public void AddRestrictions (DynamicMetaObject[] args)
{
restrictions = restrictions.Merge (CreateRestrictionsOnTarget (args));
}
public DynamicMetaObject Bind (DynamicContext ctx, Type callingType)
{
Expression res;
try {
var rc = new Compiler.ResolveContext (new RuntimeBinderContext (ctx, callingType), ResolveOptions);
// Static typemanager and internal caches are not thread-safe
lock (resolver) {
expr = expr.Resolve (rc, Compiler.ResolveFlags.VariableOrValue);
}
if (expr == null)
throw new RuntimeBinderInternalCompilerException ("Expression resolved to null");
res = expr.MakeExpression (new Compiler.BuilderContext ());
} catch (RuntimeBinderException e) {
if (errorSuggestion != null)
return errorSuggestion;
res = CreateBinderException (e.Message);
} catch (Exception) {
if (errorSuggestion != null)
return errorSuggestion;
throw;
}
return new DynamicMetaObject (res, restrictions);
}
Expression CreateBinderException (string message)
{
if (binder_exception_ctor == null)
binder_exception_ctor = typeof (RuntimeBinderException).GetConstructor (new[] { typeof (string) });
//
// Uses target type to keep expressions composition working
//
return Expression.Throw (Expression.New (binder_exception_ctor, Expression.Constant (message)), binder.ReturnType);
}
static BindingRestrictions CreateRestrictionsOnTarget (DynamicMetaObject arg)
{
return arg.HasValue && arg.Value == null ?
BindingRestrictions.GetInstanceRestriction (arg.Expression, null) :
BindingRestrictions.GetTypeRestriction (arg.Expression, arg.LimitType);
}
public static BindingRestrictions CreateRestrictionsOnTarget (DynamicMetaObject[] args)
{
if (args.Length == 0)
return BindingRestrictions.Empty;
var res = CreateRestrictionsOnTarget (args[0]);
for (int i = 1; i < args.Length; ++i)
res = res.Merge (CreateRestrictionsOnTarget (args[i]));
return res;
}
}
}

View File

@@ -0,0 +1,47 @@
//
// CSharpBinderFlags.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
namespace Microsoft.CSharp.RuntimeBinder
{
[Flags]
public enum CSharpBinderFlags
{
None = 0,
CheckedContext = 1,
InvokeSimpleName = 1 << 1,
InvokeSpecialName = 1 << 2,
BinaryOperationLogical = 1 << 3,
ConvertExplicit = 1 << 4,
ConvertArrayIndex = 1 << 5,
ResultIndexed = 1 << 6,
ValueFromCompoundAssignment = 1 << 7,
ResultDiscarded = 1 << 8
}
}

View File

@@ -0,0 +1,68 @@
//
// CSharpConvertBinder.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Linq;
using Compiler = Mono.CSharp;
namespace Microsoft.CSharp.RuntimeBinder
{
class CSharpConvertBinder : ConvertBinder
{
readonly CSharpBinderFlags flags;
readonly Type context;
public CSharpConvertBinder (Type type, Type context, CSharpBinderFlags flags)
: base (type, (flags & CSharpBinderFlags.ConvertExplicit) != 0)
{
this.flags = flags;
this.context = context;
}
public override DynamicMetaObject FallbackConvert (DynamicMetaObject target, DynamicMetaObject errorSuggestion)
{
var ctx = DynamicContext.Create ();
var expr = ctx.CreateCompilerExpression (null, target);
if (Explicit)
expr = new Compiler.Cast (new Compiler.TypeExpression (ctx.ImportType (Type), Compiler.Location.Null), expr, Compiler.Location.Null);
else
expr = new Compiler.ImplicitCast (expr, ctx.ImportType (Type), (flags & CSharpBinderFlags.ConvertArrayIndex) != 0);
if ((flags & CSharpBinderFlags.CheckedContext) != 0)
expr = new Compiler.CheckedExpr (expr, Compiler.Location.Null);
var binder = new CSharpBinder (this, expr, errorSuggestion);
binder.AddRestrictions (target);
return binder.Bind (ctx, context);
}
}
}

View File

@@ -0,0 +1,71 @@
//
// CSharpGetIndexBinder.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Linq;
using Compiler = Mono.CSharp;
namespace Microsoft.CSharp.RuntimeBinder
{
class CSharpGetIndexBinder : GetIndexBinder
{
IList<CSharpArgumentInfo> argumentInfo;
Type callingContext;
public CSharpGetIndexBinder (Type callingContext, IEnumerable<CSharpArgumentInfo> argumentInfo)
: base (CSharpArgumentInfo.CreateCallInfo (argumentInfo, 1))
{
this.callingContext = callingContext;
this.argumentInfo = argumentInfo.ToReadOnly ();
}
public override DynamicMetaObject FallbackGetIndex (DynamicMetaObject target, DynamicMetaObject[] indexes, DynamicMetaObject errorSuggestion)
{
if (argumentInfo.Count != indexes.Length + 1) {
if (errorSuggestion == null)
throw new NotImplementedException ();
return errorSuggestion;
}
var ctx = DynamicContext.Create ();
var expr = ctx.CreateCompilerExpression (argumentInfo [0], target);
var args = ctx.CreateCompilerArguments (argumentInfo.Skip (1), indexes);
expr = new Compiler.ElementAccess (expr, args, Compiler.Location.Null);
expr = new Compiler.Cast (new Compiler.TypeExpression (ctx.ImportType (ReturnType), Compiler.Location.Null), expr, Compiler.Location.Null);
var binder = new CSharpBinder (this, expr, errorSuggestion);
binder.AddRestrictions (target);
binder.AddRestrictions (indexes);
return binder.Bind (ctx, callingContext);
}
}
}

Some files were not shown because too many files have changed in this diff Show More