Beispiel #1
0
        private MethodDef(IMethodDef original, string name            = null, string returnType = null, XmlElement summary = null, XmlElement returnDescription = null, IException exception = null,
                          ReadOnlyCollection <GenericArg> genericArgs = null, ReadOnlyCollection <Parameter> parameters = null, XmlElement bodyElement = null, XmlElement syncBodyElement = null,
                          XmlElement asyncBodyElement = null, XmlElement syncAsyncBodyElement = null, XmlElement streamBodyElement = null,
                          XmlElement tokenBodyElement = null, string overload = null, bool?needsStream = null, bool?streamSerial = null, bool?needsAsync = null, TokenMode tokenMode = TokenMode.None)
        {
            methodDefXml = original.GetMethodDefXml();

            Name                 = name ?? original.Name;
            ReturnType           = returnType ?? original.ReturnType;
            Summary              = summary ?? original.Summary;
            ReturnDescription    = returnDescription ?? original.ReturnDescription;
            Exception            = exception ?? (original.Exception != null ? new Exception(original.Exception) : null);
            GenericArgs          = genericArgs != null && genericArgs.Count > 0 ? genericArgs : original.GenericArgs?.Select(a => new GenericArg(a)).ToReadOnlyList();
            Parameters           = parameters != null && parameters.Count > 0 ? parameters : original.Parameters?.Select(p => new Parameter(p)).ToReadOnlyList();
            BodyElement          = bodyElement ?? (XmlElement)original.BodyElement?.CloneNode(true);
            SyncBodyElement      = syncBodyElement ?? (XmlElement)original.SyncBodyElement?.CloneNode(true);
            AsyncBodyElement     = asyncBodyElement ?? (XmlElement)original.AsyncBodyElement?.CloneNode(true);
            SyncAsyncBodyElement = syncAsyncBodyElement ?? (XmlElement)original.SyncAsyncBodyElement?.CloneNode(true);
            StreamBodyElement    = streamBodyElement ?? (XmlElement)original.StreamBodyElement?.CloneNode(true);
            TokenBodyElement     = tokenBodyElement ?? (XmlElement)original.TokenBodyElement?.CloneNode(true);
            Overload             = overload ?? original.Overload;
            NeedsStream          = needsStream.HasValue ? needsStream.Value : original.NeedsStream;
            NeedsAsync           = needsAsync.HasValue ? needsAsync.Value : original.NeedsAsync;
            TokenMode            = tokenMode != TokenMode.None ? tokenMode : original.TokenMode;
        }
Beispiel #2
0
 public MethodDef(MethodDefXml methodDefXml) : this(methodDefXml, name : null)
 {
 }