using System; using System.Collections; using System.Runtime.InteropServices; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Proxies; using System.Runtime.Serialization; namespace System.Runtime.Remoting.Messaging { /// Implements the interface to create a request message that constitutes a constructor call on a remote object. // Token: 0x020003E2 RID: 994 [CLSCompliant(false)] [ComVisible(true)] [Serializable] public class ConstructionCall : MethodCall, IConstructionCallMessage, IMessage, IMethodCallMessage, IMethodMessage { /// Initializes a new instance of the class by copying an existing message. /// A remoting message. // Token: 0x060026DC RID: 9948 RVA: 0x0008026C File Offset: 0x0007E46C public ConstructionCall(IMessage m) : base(m) { this._activationTypeName = this.TypeName; this._isContextOk = true; } // Token: 0x060026DD RID: 9949 RVA: 0x00080288 File Offset: 0x0007E488 internal ConstructionCall(Type type) { this._activationType = type; this._activationTypeName = type.AssemblyQualifiedName; this._isContextOk = true; } /// Initializes a new instance of the class from an array of remoting headers. /// An array of remoting headers that contain key-value pairs. This array is used to initialize fields for those headers that belong to the namespace "http://schemas.microsoft.com/clr/soap/messageProperties". // Token: 0x060026DE RID: 9950 RVA: 0x000802B8 File Offset: 0x0007E4B8 public ConstructionCall(Header[] headers) : base(headers) { } // Token: 0x060026DF RID: 9951 RVA: 0x000802C4 File Offset: 0x0007E4C4 internal ConstructionCall(SerializationInfo info, StreamingContext context) : base(info, context) { } // Token: 0x060026E0 RID: 9952 RVA: 0x000802D0 File Offset: 0x0007E4D0 internal override void InitDictionary() { ConstructionCallDictionary constructionCallDictionary = new ConstructionCallDictionary(this); this.ExternalProperties = constructionCallDictionary; this.InternalProperties = constructionCallDictionary.GetInternalProperties(); } // Token: 0x1700074B RID: 1867 // (get) Token: 0x060026E1 RID: 9953 RVA: 0x000802F8 File Offset: 0x0007E4F8 // (set) Token: 0x060026E2 RID: 9954 RVA: 0x00080300 File Offset: 0x0007E500 internal bool IsContextOk { get { return this._isContextOk; } set { this._isContextOk = value; } } /// Gets the type of the remote object to activate. /// The of the remote object to activate. /// /// /// // Token: 0x1700074C RID: 1868 // (get) Token: 0x060026E3 RID: 9955 RVA: 0x0008030C File Offset: 0x0007E50C public Type ActivationType { get { if (this._activationType == null) { this._activationType = Type.GetType(this._activationTypeName); } return this._activationType; } } /// Gets the full type name of the remote object to activate. /// A containing the full type name of the remote object to activate. /// /// /// // Token: 0x1700074D RID: 1869 // (get) Token: 0x060026E4 RID: 9956 RVA: 0x0008033C File Offset: 0x0007E53C public string ActivationTypeName { get { return this._activationTypeName; } } /// Gets or sets the activator that activates the remote object. /// The that activates the remote object. /// /// /// // Token: 0x1700074E RID: 1870 // (get) Token: 0x060026E5 RID: 9957 RVA: 0x00080344 File Offset: 0x0007E544 // (set) Token: 0x060026E6 RID: 9958 RVA: 0x0008034C File Offset: 0x0007E54C public IActivator Activator { get { return this._activator; } set { this._activator = value; } } /// Gets the call site activation attributes for the remote object. /// An array of type containing the call site activation attributes for the remote object. /// /// /// // Token: 0x1700074F RID: 1871 // (get) Token: 0x060026E7 RID: 9959 RVA: 0x00080358 File Offset: 0x0007E558 public object[] CallSiteActivationAttributes { get { return this._activationAttributes; } } // Token: 0x060026E8 RID: 9960 RVA: 0x00080360 File Offset: 0x0007E560 internal void SetActivationAttributes(object[] attributes) { this._activationAttributes = attributes; } /// Gets a list of properties that define the context in which the remote object is to be created. /// A that contains a list of properties that define the context in which the remote object is to be created. /// /// /// // Token: 0x17000750 RID: 1872 // (get) Token: 0x060026E9 RID: 9961 RVA: 0x0008036C File Offset: 0x0007E56C public IList ContextProperties { get { if (this._contextProperties == null) { this._contextProperties = new ArrayList(); } return this._contextProperties; } } // Token: 0x060026EA RID: 9962 RVA: 0x0008038C File Offset: 0x0007E58C internal override void InitMethodProperty(string key, object value) { switch (key) { case "__Activator": this._activator = (IActivator)value; return; case "__CallSiteActivationAttributes": this._activationAttributes = (object[])value; return; case "__ActivationType": this._activationType = (Type)value; return; case "__ContextProperties": this._contextProperties = (IList)value; return; case "__ActivationTypeName": this._activationTypeName = (string)value; return; } base.InitMethodProperty(key, value); } // Token: 0x060026EB RID: 9963 RVA: 0x00080470 File Offset: 0x0007E670 public override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); IList list = this._contextProperties; if (list != null && list.Count == 0) { list = null; } info.AddValue("__Activator", this._activator); info.AddValue("__CallSiteActivationAttributes", this._activationAttributes); info.AddValue("__ActivationType", null); info.AddValue("__ContextProperties", list); info.AddValue("__ActivationTypeName", this._activationTypeName); } /// Gets an interface that represents a collection of the remoting message's properties. /// An interface that represents a collection of the remoting message's properties. /// /// /// // Token: 0x17000751 RID: 1873 // (get) Token: 0x060026EC RID: 9964 RVA: 0x000804EC File Offset: 0x0007E6EC public override IDictionary Properties { get { return base.Properties; } } // Token: 0x17000752 RID: 1874 // (get) Token: 0x060026ED RID: 9965 RVA: 0x000804F4 File Offset: 0x0007E6F4 // (set) Token: 0x060026EE RID: 9966 RVA: 0x000804FC File Offset: 0x0007E6FC internal RemotingProxy SourceProxy { get { return this._sourceProxy; } set { this._sourceProxy = value; } } // Token: 0x04000F31 RID: 3889 private IActivator _activator; // Token: 0x04000F32 RID: 3890 private object[] _activationAttributes; // Token: 0x04000F33 RID: 3891 private IList _contextProperties; // Token: 0x04000F34 RID: 3892 private Type _activationType; // Token: 0x04000F35 RID: 3893 private string _activationTypeName; // Token: 0x04000F36 RID: 3894 private bool _isContextOk; // Token: 0x04000F37 RID: 3895 [NonSerialized] private RemotingProxy _sourceProxy; } }