예제 #1
0
        public override string ToString()
        {
            StringBuilder b = new StringBuilder();

            if (IsRef)
            {
                b.Append("ref ");
            }
            if (IsOut)
            {
                b.Append("out ");
            }
            if (IsParams)
            {
                b.Append("params ");
            }
            b.Append(name);
            b.Append(':');
            b.Append(type.ToString());
            if (defaultValue != null)
            {
                b.Append(" = ");
                b.Append(defaultValue.ToString());
            }
            return(b.ToString());
        }
        private bool isKnownUIChanger(ITypeReference typeRef, IMethodCall call)
        {
            string methodName = call.MethodToCall.Name.Value;
            IEnumerable <String> methodsForType = PHONE_UI_CHANGER_METHODS[typeRef.ToString()];

            return(methodsForType != null && methodsForType.Contains(methodName));
        }
예제 #3
0
        public static bool IsIEnumeratorScopeMapUsage(this ITypeReference type)
        {
            return(type.ToString().Contains("ScopeMapUsage"));

            //var basicType = type as INamedTypeReference;
            //if (basicType != null)
            //{
            //    return basicType.GenericName == "IEnumerator<ScopeMapUsage>";
            //}
            //return false;
        }
예제 #4
0
        public override string ToString()
        {
            StringBuilder b = new StringBuilder("[");

            b.Append(GetType().Name);
            b.Append(' ');
            b.Append(declaringType.ToString());
            b.Append('.');
            b.Append(this.Name);
            b.Append(':');
            b.Append(returnType.ToString());
            b.Append(']');
            return(b.ToString());
        }
예제 #5
0
        public override string ToString()
        {
            StringBuilder b = new StringBuilder(genericType.ToString());

            b.Append('[');
            for (int i = 0; i < typeArguments.Length; i++)
            {
                if (i > 0)
                {
                    b.Append(',');
                }
                b.Append('[');
                b.Append(typeArguments[i].ToString());
                b.Append(']');
            }
            b.Append(']');
            return(b.ToString());
        }
예제 #6
0
        public string ToString(ICodeTranslationOptions options)
        {
            if (options == null)
            {
                options = CodeGeneratorHelper.DefaultDomOptions;
            }
            if (this.ArrayElementType != null)
            {
                List <int> arrayRanks = new List <int>();

                ITypeReference arrayElementItem = this;
                while (arrayElementItem.ArrayElementType != null)
                {
                    arrayRanks.Add(arrayElementItem.ArrayRank);
                    arrayElementItem = arrayElementItem.ArrayElementType;
                }

                string[] arrayRankTexts = new string[arrayRanks.Count];
                for (int i = 0; i < arrayRankTexts.Length; i++)
                {
                    arrayRankTexts[i] = GetArrayRankText(arrayRanks[i]);
                }
                return(String.Format("{0}{1}", arrayElementItem.ToString(), String.Join("", arrayRankTexts)));
            }
            string pointer = string.Empty;

            for (int i = 0; i < this.pointerRank; i++)
            {
                pointer += "*";
            }
            string[] typeParamNames = new string[this.TypeParameters.Count];
            if (this.TypeParameters.Count > 0)
            {
                for (int i = 0; i < this.TypeParameters.Count; i++)
                {
                    typeParamNames[i] = TypeParameters[i].ToString();
                }
                return(String.Format("{0}<{1}>{2}{3}", this.typeInstance.GetTypeName(options), String.Join(",", typeParamNames), Nullable ? "?" : string.Empty, pointer));
            }
            else
            {
                return(string.Format("{0}{1}{2}", this.typeInstance.GetTypeName(options), Nullable ? "?" : string.Empty, pointer));
            }
        }
예제 #7
0
        public override string ToString()
        {
            StringBuilder b = new StringBuilder();

            b.Append('[');
            b.Append(attributeType.ToString());
            if (this.PositionalArguments.Count + this.NamedArguments.Count > 0)
            {
                b.Append('(');
                bool first = true;
                foreach (var element in this.PositionalArguments)
                {
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        b.Append(", ");
                    }
                    b.Append(element.ToString());
                }
                foreach (var pair in this.NamedArguments)
                {
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        b.Append(", ");
                    }
                    b.Append(pair.Key);
                    b.Append('=');
                    b.Append(pair.Value.ToString());
                }
                b.Append(')');
            }
            b.Append(']');
            return(b.ToString());
        }
        public static ITypeDeclaration FindMatchingType(ITypeDeclaration tdec, ITypeReference tref)
        {
            ITypeDeclaration result = null;

            if (tdec.ToString() == tref.ToString())
            {
                return(tdec);
            }
            else
            {
                foreach (ITypeDeclaration idec in tdec.NestedTypes)
                {
                    result = FindMatchingType(idec, tref);
                    if (result != null)
                    {
                        return(result);
                    }
                }
            }
            return(null);
        }
예제 #9
0
        public static string GetTypeName(this ITypeReference type, string[] usedNamespaces)
        {
            string retval;

            if (type is ParameterizedTypeReference)
            {
                retval = (type as ParameterizedTypeReference).GetTypeName(usedNamespaces); //generic type
            }
            else if (type is ArrayTypeReference)
            {
                retval = (type as ArrayTypeReference).GetTypeName(usedNamespaces);
            }
            else if (type is DefaultUnresolvedTypeDefinition)
            {
                retval = (type as DefaultUnresolvedTypeDefinition).FullName.NormaliseClrName(usedNamespaces);
            }
            else if (type is PointerTypeReference)
            {
                retval = (type as PointerTypeReference).GetTypeName(usedNamespaces);
            }
            else if (type is DefaultResolvedTypeDefinition)
            {
                retval = (type as DefaultResolvedTypeDefinition).GetTypeName(usedNamespaces);
            }
            else if (type is ByReferenceTypeReference)
            {
                retval = (type as ByReferenceTypeReference).ElementType.GetTypeName(usedNamespaces);
            }
            else if (type is GetClassTypeReference)
            {
                retval = (type as GetClassTypeReference).GetTypeName(usedNamespaces);
            }
            else
            {
                retval = type.ToString();
            }

            return(retval.NormaliseClrName(usedNamespaces));
        }
예제 #10
0
 public override string ToString()
 {
     return(elementType.ToString() + "*");
 }
예제 #11
0
 internal static bool IsString(this ITypeReference typeReference)
 {
     return(typeReference.ToString() == "System.String");
 }
예제 #12
0
 private List<IOperation> loadBogusParameter(ITypeReference type)
 {
     return loadBogusParameter(type.ToString());
 }
 private string GetDelphiStyleResolutionScope(ITypeReference reference)
 {
     string result = reference.ToString();
     while (true)
     {
         ITypeReference OwnerRef = (reference.Owner as ITypeReference);
         if (OwnerRef == null)
         {
             string namespacestr = reference.Namespace;
             if (namespacestr.Length == 0)
                 return result;
             else
                 return namespacestr + "." + result;
         }
         reference = OwnerRef;
         result = reference.ToString() + "." + result;
     }
 }
        /// <summary>
        /// Tests is the given Assembly is a BizTalk assembly or not.
        /// </summary>
        /// <param name="assembly">Assembly to test.</param>
        /// <returns>true if this is a BizTalk assembly, false otherwise.</returns>
        private static bool TestForBizTalkAssembly(IAssembly assembly)
        {
            bool isBTSAssembly = false;

            if (assembly != null)
            {
                // A BizTalk assembly is a Library
                if (assembly.Type == AssemblyType.Library)
                {
                    // A BizTalk assembly has the "BizTalkAssemblyAttribute" set
                    foreach (ICustomAttribute attribute in assembly.Attributes)
                    {
                        // Get the constructor MethodReference for this attribute
                        IMethodReference ctorReference = attribute.Constructor as IMethodReference;
                        if (ctorReference != null)
                        {
                            // Get the declaring type for the constructor
                            ITypeReference ctorDeclaringType = ctorReference.DeclaringType as ITypeReference;
                            if (ctorDeclaringType != null)
                            {
                                isBTSAssembly = (String.CompareOrdinal(ctorDeclaringType.Owner.ToString(), Constants.XLANGBaseTypesFullyQualifiedAssemblyName) == 0) &&
                                                (String.CompareOrdinal(Constants.BizTalkAssemblyAttribute, ctorDeclaringType.ToString()) == 0);

                                // If we found the attribute we expect, we can declare it is a BizTalk assembly
                                if (isBTSAssembly)
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            return(isBTSAssembly);
        }
예제 #15
0
    /// <summary>
    /// Adds the type of the additional.
    /// </summary>
    /// <param name="typeReference">The type reference.</param>
    private void AddAdditionalType(ITypeReference typeReference)
    {
      if (this.TypeDataList.Find(typeInfo => string.Compare(typeInfo.TypeName, typeReference.Name, StringComparison.Ordinal) == 0) != null)
      {
        // Type already added
        Logger.Current.Info("The type is already in the additional list..." + typeReference.ToString());
        return;
      }

      this.AdditionalLoadList.Add(typeReference.Resolve());
    }
예제 #16
0
파일: ArrayType.cs 프로젝트: zyj0021/ILSpy
 public override string ToString()
 {
     return(elementType.ToString() + "[" + new string(',', dimensions - 1) + "]");
 }
예제 #17
0
 private List <IOperation> loadBogusParameter(ITypeReference type)
 {
     return(loadBogusParameter(type.ToString()));
 }
예제 #18
0
 public override string ToString()
 {
     return(withoutSuffix.ToString() + "[Attribute]");
 }
        protected bool TypeListContainsType(List<ITypeReference> list, ITypeReference type)
        {
            foreach (var t in list)
            {
                if (t.ToString() == type.ToString())
                {
                    return true;
                }
            }

            return false;
        }
 /// <summary>
 /// Returns the rsd field for the method, type and name, if it doesn't exist it is created and added to the class
 /// </summary>
 protected FieldDefinition GetRsdField(IMethodDefinition method, string rsdName, ITypeReference type)
 {
     return GetRsdField(method, rsdName, type.ToString());
 }
 private bool isPhoneUIChangerClass(ITypeReference typeRef) {
   return PHONE_UI_CHANGER_METHODS.Keys.Contains(typeRef.ToString());
 }
 private bool isPhoneUIChangerClass(ITypeReference typeRef)
 {
     return(PHONE_UI_CHANGER_METHODS.Keys.Contains(typeRef.ToString()));
 }
        private void initializeKnownUIChangers()
        {
            PHONE_UI_CHANGER_METHODS = new Dictionary <string, string[]>();
            IAssemblyReference systemAssembly    = PhoneTypeHelper.getSystemAssemblyReference(host);
            IAssemblyReference systemWinAssembly = PhoneTypeHelper.getSystemWindowsAssemblyReference(host);
            IAssemblyReference phoneAssembly     = PhoneTypeHelper.getPhoneAssemblyReference(host);

            ITypeReference textBoxType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "TextBox");

            PHONE_UI_CHANGER_METHODS[textBoxType.ToString()] =
                new string[] { "set_BaselineOffset", "set_CaretBrush", "set_FontSource", "set_HorizontalScrollBarVisibility", "set_IsReadOnly", "set_LineHeight",
                               "set_LineStackingStrategy", "set_MaxLength", "set_SelectedText", "set_SelectionBackground", "set_SelectionForeground", "set_SelectionLength",
                               "set_SelectionStart", "set_Text", "set_TextAlignment", "set_TextWrapping", "set_VerticalScrollBarVisibility", "set_Watermark", };

            ITypeReference textBlockType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "TextBlock");

            PHONE_UI_CHANGER_METHODS[textBlockType.ToString()] =
                new string[] { "set_BaselineOffset", "set_FontFamily", "set_FontSize", "set_FontSource", "set_FontStretch", "set_FontStyle", "set_FontWeight", "set_Foreground",
                               "set_CharacterSpacing", "set_LineHeight", "set_LineStackingStrategy", "set_Padding", "set_Text", "set_TextAlignment", "set_TextDecorations",
                               "set_TextTrimming", "set_TextWrapping", };

            ITypeReference uiElementType = platform.CreateReference(systemAssembly, "System", "Windows", "UIElement");

            PHONE_UI_CHANGER_METHODS[uiElementType.ToString()] =
                new string[] { "set_Clip", "set_Opacity", "set_OpacityMask", "set_Projection", "set_RenderTransform",
                               "set_RenderTransformOrigin", "set_Visibility", "Arrange", "InvalidateArrange", "InvalidateMeasure", "SetValue", "ClearValue", // Set/ClearValue are quite unsafe
                               "UpdateLayout", "Measure", };

            ITypeReference frameworkElementType = platform.CreateReference(systemAssembly, "System", "Windows", "FrameworkElement");

            PHONE_UI_CHANGER_METHODS[frameworkElementType.ToString()] =
                new string[] { "set_FlowDirection", "set_Height", "set_HorizontalAlignment", "set_Language", "set_Margin", "set_MaxHeight", "set_MaxWidth",
                               "set_MinHeight", "set_MinWidth", "set_Style", "set_VerticalAlignment", "set_Width", "set_Cursor", };

            ITypeReference borderType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Border");

            PHONE_UI_CHANGER_METHODS[borderType.ToString()] =
                new string[] { "set_Background", "set_BorderBrush", "set_BorderThickness", "set_CornerRadius", "set_Padding", };

            ITypeReference controlType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Control");

            PHONE_UI_CHANGER_METHODS[controlType.ToString()] =
                new string[] { "set_Background", "set_BorderBrush", "set_BorderThickness", "set_CharacterSpacing", "set_FontFamily", "set_FontSize", "set_FontStretch",
                               "set_FontStyle", "set_FontWeight", "set_Foreground", "set_HorizontalContentAlignment", "set_IsEnabled", "set_Padding", "set_VerticalContentAlignment", };

            ITypeReference contentControlType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "ContentControl");

            PHONE_UI_CHANGER_METHODS[contentControlType.ToString()] = new string[] { "set_Content", };

            ITypeReference panelType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Panel");

            PHONE_UI_CHANGER_METHODS[panelType.ToString()] = new string[] { "set_Background", };

            ITypeReference canvasType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Canvas");

            PHONE_UI_CHANGER_METHODS[canvasType.ToString()] = new string[] { "set_Left", "set_Top", "set_ZIndex", };

            ITypeReference toggleButtonType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Primitives", "ToggleButton");

            PHONE_UI_CHANGER_METHODS[toggleButtonType.ToString()] = new string[] { "set_IsChecked", };

            ITypeReference gridType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Grid");

            PHONE_UI_CHANGER_METHODS[gridType.ToString()] = new string[] { "set_ShowGridLines", "set_Column", "set_ColumnSpan", "set_Row", "set_RowSpan", };

            ITypeReference imageType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Image");

            PHONE_UI_CHANGER_METHODS[imageType.ToString()] = new string[] { "set_Source", "set_Stretch", };

            ITypeReference inkPresenterType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "InkPresenter");

            PHONE_UI_CHANGER_METHODS[inkPresenterType.ToString()] = new string[] { "set_Strokes", };

            ITypeReference itemsControlType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "ItemsControl");

            PHONE_UI_CHANGER_METHODS[itemsControlType.ToString()] = new string[] { "set_DisplayMemberPath", "set_ItemsSource", "set_ItemTemplate", };

            ITypeReference selectorType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Primitives", "Selector");

            PHONE_UI_CHANGER_METHODS[selectorType.ToString()] =
                new string[] { "set_SelectedIndex", "set_SelectedItem", "set_SelectedValue", "set_SelectedValuePath", };

            ITypeReference listBoxType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "ListBox");

            PHONE_UI_CHANGER_METHODS[listBoxType.ToString()] = new string[] { "set_ItemContainerStyle", };

            ITypeReference passwordBoxType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "PasswordBox");

            PHONE_UI_CHANGER_METHODS[passwordBoxType.ToString()] =
                new string[] { "set_CaretBrush", "set_FontSource", "set_MaxLength", "set_Password", "set_PasswordChar",
                               "set_SelectionBackground", "set_SelectionForeground", };

            ITypeReference rangeBaseType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Primitives", "RangeBase");

            PHONE_UI_CHANGER_METHODS[rangeBaseType.ToString()] = new string[] { "set_LargeChange", "set_Maximum", "set_Minimum", "set_SmallChange", "set_Value", };

            ITypeReference progressBarType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "ProgressBar");

            PHONE_UI_CHANGER_METHODS[progressBarType.ToString()] = new string[] { "set_IsIndeterminate", };

            ITypeReference sliderType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "Slider");

            PHONE_UI_CHANGER_METHODS[sliderType.ToString()] = new string[] { "set_IsDirectionReversed", "set_Orientation", };

            ITypeReference stackPanelType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "StackPanel");

            PHONE_UI_CHANGER_METHODS[stackPanelType.ToString()] = new string[] { "set_Orientation", };

            ITypeReference richTextBoxType = platform.CreateReference(systemAssembly, "System", "Windows", "Controls", "RichTextBox");

            PHONE_UI_CHANGER_METHODS[richTextBoxType.ToString()] =
                new string[] { "set_BaselineOffset", "set_CaretBrush", "set_HorizontalScrollBartVisibility", "set_LineHeight", "set_LineStackingStrategy",
                               "set_TextAlignment", "set_TextWrapping", "set_VerticalScrollBarVisibility", "set_Xaml", };

            ITypeReference webBrowserTaskType = platform.CreateReference(phoneAssembly, "Microsoft", "Phone", "Tasks", "WebBrowserTask");

            PHONE_UI_CHANGER_METHODS[webBrowserTaskType.ToString()] = new string[] { "Show", };

            ITypeReference appBarIconButtonType = platform.CreateReference(phoneAssembly, "Microsoft", "Phone", "Shell", "ApplicationBarIconButton");

            PHONE_UI_CHANGER_METHODS[appBarIconButtonType.ToString()] = new string[] { "set_IsEnabled", "set_IconUri", "set_Text", };

            ITypeReference appBarMenuItemType = platform.CreateReference(phoneAssembly, "Microsoft", "Phone", "Shell", "ApplicationBarMenuItem");

            PHONE_UI_CHANGER_METHODS[appBarMenuItemType.ToString()] = new string[] { "set_IsEnabled", "set_Text", };

            ITypeReference emailComposeTaskType = platform.CreateReference(phoneAssembly, "Microsoft", "Phone", "Tasks", "EmailComposeTask");

            PHONE_UI_CHANGER_METHODS[emailComposeTaskType.ToString()] = new string[] { "Show", };

            ITypeReference scaleTransformType = platform.CreateReference(systemWinAssembly, "System", "Windows", "Media", "ScaleTransform");

            PHONE_UI_CHANGER_METHODS[scaleTransformType.ToString()] = new string[] { "set_CenterX", "set_CenterY", "set_ScaleX", "set_ScaleY", };
        }
 private bool isKnownUIChanger(ITypeReference typeRef, IMethodCall call) {
   string methodName= call.MethodToCall.Name.Value;
   IEnumerable<String> methodsForType = PHONE_UI_CHANGER_METHODS[typeRef.ToString()];
   return methodsForType != null && methodsForType.Contains(methodName);
 }
예제 #25
0
 public virtual string GetSignatureForError()
 {
     return type.ToString();
 }
예제 #26
0
 public static ITypeDeclaration FindMatchingType(ITypeDeclaration tdec, ITypeReference tref)
 {
     return(tdec.ToString() == tref.ToString() ? tdec : (tdec.NestedTypes.Cast <ITypeDeclaration>().Select(idec => FindMatchingType(idec, tref))).FirstOrDefault(result => result != null));
 }
 /// <summary>
 /// Returns the tmp field for the method and type, if it doesn't exist it is created and added to the class
 /// </summary>
 protected FieldDefinition GetTmpField(IMethodDefinition method, ITypeReference type)
 {
     return GetTmpField(method, type.ToString());
 }