Adapted GetAttributes to rely on Type.GetType(fullTypeName) which should fix the issue when passing attribute base class.
Added throwForMultiple in GetAttributes which either returns null or throws exception, when there is no single attribute.