コード例 #1
0
        private static void TestCore <TAttribute>(
            Type type, string expected, AttributesSource attributesSource, SearchMode searchMode)
            where TAttribute : class, ITestInterface
        {
            if (attributesSource != AttributesSource.All)
            {
                var result = attributesSource == AttributesSource.Assembly
                                        ? GetAttributesString <TAttribute>(type.Assembly, searchMode)
                                        : GetAttributesString <TAttribute>(type, searchMode);
                AreEqual(result, expected);
            }
            else
            {
                var bf     = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
                var result = GetAttributesString <TAttribute>(type.GetMethod("M", bf), searchMode);
                AreEqual(result, expected);

                if (searchMode != SearchMode.Attributes)                 // default do not honor inherit flag for properties / events
                {
                    result = GetAttributesString <TAttribute>(type.GetProperty("P", bf), searchMode);
                    AreEqual(result, expected.Replace(".M", ".P"));

                    result = GetAttributesString <TAttribute>(type.GetEvent("E", bf), searchMode);
                    AreEqual(result, expected.Replace(".M", ".E"));
                }
            }
        }
コード例 #2
0
 public virtual bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource) => false;
コード例 #3
0
 public override bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource) =>
 Attributes.HasAttributeInstance(clrName.FullName);
コード例 #4
0
 public override IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName, AttributesSource attributesSource) =>
 Attributes.GetAttributes(clrName).ToAttributeInstances(Module);
コード例 #5
0
 public override IList <IAttributeInstance> GetAttributeInstances(AttributesSource attributesSource) =>
 Attributes.ToAttributeInstances(Module);
コード例 #6
0
 public abstract bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource);
コード例 #7
0
 public abstract IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName,
                                                                  AttributesSource attributesSource);
コード例 #8
0
 public override IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName, AttributesSource source) =>
 EmptyList <IAttributeInstance> .Instance;
コード例 #9
0
 public IList <IAttributeInstance> GetAttributeInstances(AttributesSource attributesSource) =>
 FSharpSymbol.Attributes.ToAttributeInstances(Module);
コード例 #10
0
 public IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName, AttributesSource attributesSource) =>
 FSharpSymbol.Attributes.GetAttributes(clrName.FullName).ToAttributeInstances(Module);
コード例 #11
0
 public bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource) =>
 FSharpSymbol.Attributes.HasAttributeInstance(clrName.FullName);
コード例 #12
0
 public bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource) =>
 Attrs.HasAttributeInstance(clrName);
コード例 #13
0
 public override bool HasAttributeInstance(IClrTypeName clrName, AttributesSource attributesSource) => false;
コード例 #14
0
 public virtual IList <IAttributeInstance> GetAttributeInstances(AttributesSource attributesSource) =>
 EmptyList <IAttributeInstance> .Instance;
コード例 #15
0
 public abstract IList <IAttributeInstance> GetAttributeInstances(AttributesSource attributesSource);
コード例 #16
0
 public virtual IList <IAttributeInstance> GetAttributeInstances(IClrTypeName clrName, AttributesSource attributesSource) =>
 EmptyList <IAttributeInstance> .Instance;
コード例 #17
0
 public override IList <IAttributeInstance> GetAttributeInstances(AttributesSource source) =>
 EmptyList <IAttributeInstance> .Instance;