Exemplo n.º 1
0
        public static string GetScriptName(ICustomAttributeProvider attributeProvider, out bool preserveName, out bool preserveCase)
        {
            string name = null;

            preserveName = false;
            preserveCase = false;

            CustomAttribute nameAttribute = GetAttribute(attributeProvider, "System.ScriptNameAttribute");

            if (nameAttribute != null)
            {
                if (nameAttribute.HasConstructorArguments)
                {
                    name = GetAttributeArgument(nameAttribute);
                }
                if (nameAttribute.HasProperties)
                {
                    for (int i = 0; i < nameAttribute.Properties.Count; i++)
                    {
                        if (String.CompareOrdinal(nameAttribute.Properties[i].Name, "PreserveName") == 0)
                        {
                            preserveName = (bool)nameAttribute.Properties[i].Argument.Value;
                        }
                        else
                        {
                            preserveCase = (bool)nameAttribute.Properties[i].Argument.Value;
                        }
                    }
                }
            }

            return(name);
        }
Exemplo n.º 2
0
        public static string GetScriptNamespace(ICustomAttributeProvider attributeProvider) {
            CustomAttribute scriptNamespaceAttribute = GetAttribute(attributeProvider, "System.Runtime.CompilerServices.ScriptNamespaceAttribute");
            if (scriptNamespaceAttribute != null) {
                return GetAttributeArgument(scriptNamespaceAttribute);
            }

            return null;
        }
Exemplo n.º 3
0
        private static CustomAttribute GetAttribute(ICustomAttributeProvider attributeProvider, string attributeTypeName) {
            foreach (CustomAttribute attribute in attributeProvider.CustomAttributes) {
                if (String.CompareOrdinal(attribute.Constructor.DeclaringType.FullName, attributeTypeName) == 0) {
                    return attribute;
                }
            }

            return null;
        }
Exemplo n.º 4
0
        public static string GetScriptNamespace(ICustomAttributeProvider attributeProvider)
        {
            CustomAttribute scriptNamespaceAttribute = GetAttribute(attributeProvider, "System.Runtime.CompilerServices.ScriptNamespaceAttribute");

            if (scriptNamespaceAttribute != null)
            {
                return(GetAttributeArgument(scriptNamespaceAttribute));
            }

            return(null);
        }
Exemplo n.º 5
0
        private static CustomAttribute GetAttribute(ICustomAttributeProvider attributeProvider, string attributeTypeName)
        {
            foreach (CustomAttribute attribute in attributeProvider.CustomAttributes)
            {
                if (String.CompareOrdinal(attribute.Constructor.DeclaringType.FullName, attributeTypeName) == 0)
                {
                    return(attribute);
                }
            }

            return(null);
        }
Exemplo n.º 6
0
        public static string GetScriptDependencyName(ICustomAttributeProvider attributeProvider, out string dependencyIdentifier)
        {
            dependencyIdentifier = null;

            CustomAttribute scriptDependencyAttribute = GetAttribute(attributeProvider, "System.Runtime.CompilerServices.ScriptDependencyAttribute");

            if (scriptDependencyAttribute != null)
            {
                string name = GetAttributeArgument(scriptDependencyAttribute);
                if (scriptDependencyAttribute.Properties.Count != 0)
                {
                    dependencyIdentifier = (string)scriptDependencyAttribute.Properties[0].Argument.Value;
                }

                return(name);
            }

            return(null);
        }
Exemplo n.º 7
0
        public static string GetScriptAssemblyName(ICustomAttributeProvider attributeProvider, out string assemblyIdentifier)
        {
            assemblyIdentifier = null;

            CustomAttribute scriptAssemblyAttribute = GetAttribute(attributeProvider, "System.ScriptAssemblyAttribute");

            if (scriptAssemblyAttribute != null)
            {
                string name = GetAttributeArgument(scriptAssemblyAttribute);
                if (scriptAssemblyAttribute.Properties.Count != 0)
                {
                    assemblyIdentifier = (string)scriptAssemblyAttribute.Properties[0].Argument.Value;
                }

                return(name);
            }

            return(null);
        }
Exemplo n.º 8
0
 public static bool ShouldSkipFromScript(ICustomAttributeProvider attributeProvider) {
     return GetAttribute(attributeProvider, "System.Runtime.CompilerServices.ScriptSkipAttribute") != null;
 }
Exemplo n.º 9
0
 public static bool ShouldPreserveCase(ICustomAttributeProvider attributeProvider) {
     return GetAttribute(attributeProvider, "System.Runtime.CompilerServices.PreserveCaseAttribute") != null;
 }
Exemplo n.º 10
0
        private void ImportMemberDetails(MemberSymbol memberSymbol, MethodDefinition methodDefinition, ICustomAttributeProvider attributeProvider)
        {
            if (methodDefinition != null)
            {
                MemberVisibility visibility = MemberVisibility.PrivateInstance;
                if (methodDefinition.IsStatic)
                {
                    visibility |= MemberVisibility.Static;
                }
                if (methodDefinition.IsPublic)
                {
                    visibility |= MemberVisibility.Public;
                }
                else if (methodDefinition.IsFamily || methodDefinition.IsFamilyOrAssembly)
                {
                    visibility |= MemberVisibility.Protected;
                }

                memberSymbol.SetVisibility(visibility);
            }

            bool   preserveName;
            bool   preserveCase;
            string scriptName = MetadataHelpers.GetScriptName(attributeProvider, out preserveName, out preserveCase);

            memberSymbol.SetNameCasing(preserveCase);
            if (scriptName != null)
            {
                memberSymbol.SetTransformedName(scriptName);
            }

            // PreserveName is ignored - it only is used for internal members, which are not imported.
        }
Exemplo n.º 11
0
        private void ImportMemberDetails(MemberSymbol memberSymbol, MethodDefinition methodDefinition, ICustomAttributeProvider attributeProvider)
        {
            if (methodDefinition != null)
            {
                MemberVisibility visibility = MemberVisibility.PrivateInstance;
                if (methodDefinition.IsStatic)
                {
                    visibility |= MemberVisibility.Static;
                }
                if (methodDefinition.IsPublic)
                {
                    visibility |= MemberVisibility.Public;
                }
                else if (methodDefinition.IsFamily || methodDefinition.IsFamilyOrAssembly)
                {
                    visibility |= MemberVisibility.Protected;
                }

                memberSymbol.SetVisibility(visibility);
            }

            memberSymbol.SetNameCasing(MetadataHelpers.ShouldPreserveCase(attributeProvider));

            string scriptName = MetadataHelpers.GetScriptName(attributeProvider);

            if (scriptName != null)
            {
                memberSymbol.SetTransformedName(scriptName);
            }
        }
Exemplo n.º 12
0
        private void ImportMemberDetails(MemberSymbol memberSymbol, MethodDefinition methodDefinition, ICustomAttributeProvider attributeProvider)
        {
            if (methodDefinition != null) {
                MemberVisibility visibility = MemberVisibility.PrivateInstance;
                if (methodDefinition.IsStatic) {
                    visibility |= MemberVisibility.Static;
                }
                if (methodDefinition.IsPublic) {
                    visibility |= MemberVisibility.Public;
                }
                else if (methodDefinition.IsFamily || methodDefinition.IsFamilyOrAssembly) {
                    visibility |= MemberVisibility.Protected;
                }

                memberSymbol.SetVisibility(visibility);
            }

            memberSymbol.SetNameCasing(MetadataHelpers.ShouldPreserveCase(attributeProvider));

            string scriptName = MetadataHelpers.GetScriptName(attributeProvider);
            if (scriptName != null) {
                memberSymbol.SetTransformedName(scriptName);
            }
        }
Exemplo n.º 13
0
 public static bool ShouldSkipFromScript(ICustomAttributeProvider attributeProvider)
 {
     return(GetAttribute(attributeProvider, "System.Runtime.CompilerServices.ScriptSkipAttribute") != null);
 }
Exemplo n.º 14
0
 public static bool ShouldPreserveCase(ICustomAttributeProvider attributeProvider)
 {
     return(GetAttribute(attributeProvider, "System.Runtime.CompilerServices.PreserveCaseAttribute") != null);
 }