Moved another helper method that tests whether a type is carrying an attribute into the TypeHelper class
git-svn-id: file:///srv/devel/repo-conversion/nusu@271 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
parent
97de199705
commit
0637b9d71b
|
@ -35,8 +35,8 @@ namespace Nuclex.Support.Plugins {
|
||||||
/// Tests whether the default consturctor of the no plugin attribute works
|
/// Tests whether the default consturctor of the no plugin attribute works
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Test]
|
[Test]
|
||||||
public void TestDefaultConstructor() {
|
public void HasDefaultConstructor() {
|
||||||
new NoPluginAttribute();
|
Assert.NotNull(new NoPluginAttribute());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,8 +86,7 @@ namespace Nuclex.Support.Plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Types that have been tagged with the [NoPlugin] attribute will be ignored
|
// Types that have been tagged with the [NoPlugin] attribute will be ignored
|
||||||
object[] attributes = type.GetCustomAttributes(true);
|
if(type.HasAttribute<NoPluginAttribute>()) {
|
||||||
if(containsNoPluginAttribute(attributes)) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,20 +103,6 @@ namespace Nuclex.Support.Plugins {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines whether the specifies list of attributes contains a NoPluginAttribute
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="attributes">List of attributes to check</param>
|
|
||||||
/// <returns>True if the list contained a NoPluginAttribute, false otherwise</returns>
|
|
||||||
private static bool containsNoPluginAttribute(object[] attributes) {
|
|
||||||
for(int index = 0; index < attributes.Length; ++index) {
|
|
||||||
if(attributes[index] is NoPluginAttribute) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Reports an error to the debugging console</summary>
|
/// <summary>Reports an error to the debugging console</summary>
|
||||||
/// <param name="error">Error message that will be reported</param>
|
/// <param name="error">Error message that will be reported</param>
|
||||||
private static void reportError(string error) {
|
private static void reportError(string error) {
|
||||||
|
|
|
@ -86,6 +86,23 @@ namespace Nuclex.Support {
|
||||||
|
|
||||||
#endregion // class Derived
|
#endregion // class Derived
|
||||||
|
|
||||||
|
#region class HasIgnoreAttribute
|
||||||
|
|
||||||
|
/// <summary>Class that carries an IgnoreAttribute</summary>
|
||||||
|
[Ignore]
|
||||||
|
private class HasIgnoreAttribute { }
|
||||||
|
|
||||||
|
#endregion // class HasIgnoreAttribute
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Verifies that the type helper can determine whether a class is carrying an attribute
|
||||||
|
/// </summary>
|
||||||
|
[Test]
|
||||||
|
public void CanDetermineIfTypeHasAttribute() {
|
||||||
|
Assert.IsTrue(typeof(HasIgnoreAttribute).HasAttribute<IgnoreAttribute>());
|
||||||
|
Assert.IsFalse(typeof(HasIgnoreAttribute).HasAttribute<TestAttribute>());
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Verifies that the GetFieldInfosIncludingBaseClasses() will include the backing
|
/// Verifies that the GetFieldInfosIncludingBaseClasses() will include the backing
|
||||||
/// fields of automatically implemented properties in base classes
|
/// fields of automatically implemented properties in base classes
|
||||||
|
|
|
@ -167,6 +167,17 @@ namespace Nuclex.Support {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Determines whether the type has the specified attribute</summary>
|
||||||
|
/// <typeparam name="TAttribute">Attribute the type will be checked for</typeparam>
|
||||||
|
/// <param name="type">
|
||||||
|
/// Type that will be checked for presence of the specified attribute
|
||||||
|
/// </param>
|
||||||
|
/// <returns>True if the type has the specified attribute, otherwise false</returns>
|
||||||
|
public static bool HasAttribute<TAttribute>(this Type type) {
|
||||||
|
object[] attributes = type.GetCustomAttributes(typeof(TAttribute), true);
|
||||||
|
return (attributes != null) && (attributes.Length > 0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Nuclex.Support
|
} // namespace Nuclex.Support
|
||||||
|
|
Loading…
Reference in New Issue
Block a user