protected override void DoWriteParameterTypeAndName(TypeReference type, string name, ParameterDefinition reference) { if (reference.IsParamArray()) { WriteKeyword(KeyWordWriter.ParamArray); WriteSpace(); } if (!Language.IsValidIdentifier(name)) { name = Language.ReplaceInvalidCharactersInIdentifier(name); } if (Language.IsGlobalKeyword(name)) { name = Utilities.EscapeName(name, this.Language); } Write(name); // undocumented C# keyword like __arglist if (!string.IsNullOrEmpty(ToTypeString(type))) { WriteAsBetweenSpaces(); WriteReferenceAndNamespaceIfInCollision(type); } }
protected override void DoWriteParameterTypeAndName(TypeReference type, string name, ParameterDefinition reference) { if (!Language.IsValidIdentifier(name)) { name = Language.ReplaceInvalidCharactersInIdentifier(name); } if (reference.IsParamArray()) { WriteKeyword(KeyWordWriter.ParamArray); WriteSpace(); } CustomAttribute dynamicAttribute; if (reference.TryGetDynamicAttribute(out dynamicAttribute)) { IEnumerator positioningFlagsEnumerator = DynamicHelper.GetDynamicPositioningFlags(dynamicAttribute).GetEnumerator(); if (reference.ParameterType.IsByReference && (reference.ParameterType as ByReferenceType).ElementType == type) { if (!positioningFlagsEnumerator.MoveNext() || (bool)positioningFlagsEnumerator.Current) { throw new Exception("Invalid argument type for DynamicAttribute"); } } WriteDynamicType(type, positioningFlagsEnumerator); WriteSpace(); } else { // undocumented C# keyword like __arglist if (!string.IsNullOrEmpty(ToTypeString(type))) { WriteReferenceAndNamespaceIfInCollision(type); WriteSpace(); } } if (Language.IsGlobalKeyword(name)) { name = Utilities.EscapeName(name, this.Language); } Write(name); }