diff --git a/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs b/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs
index 2a44b69492..aa71b4954b 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs
@@ -1,4 +1,5 @@
using System;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity
{
@@ -12,6 +13,7 @@ namespace Volo.Abp.Modularity
///
/// Types of depended modules.
///
+ [NotNull]
public Type[] DependedModuleTypes { get; }
///
@@ -20,9 +22,10 @@ namespace Volo.Abp.Modularity
/// Types of depended modules
public DependsOnAttribute(params Type[] dependedModuleTypes)
{
- DependedModuleTypes = dependedModuleTypes;
+ DependedModuleTypes = dependedModuleTypes ?? new Type[0];
}
+ [NotNull]
public virtual Type[] GetDependedModuleTypes()
{
return DependedModuleTypes;
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs b/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs
index 7e7424f544..fe6934ba67 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs
@@ -1,9 +1,11 @@
using System;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity
{
public interface IDependedModuleTypesProvider
{
+ [NotNull]
Type[] GetDependedModuleTypes();
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs
index 7cb4f55077..a7e7dda674 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs
@@ -1,11 +1,12 @@
-using Volo.DependencyInjection;
+using JetBrains.Annotations;
+using Volo.DependencyInjection;
namespace Volo.Abp.Modularity
{
public interface IModuleLifecycleContributer : ISingletonDependency
{
- void Initialize(IAbpModule module);
+ void Initialize([NotNull] IAbpModule module);
- void Shutdown(IAbpModule module);
+ void Shutdown([NotNull] IAbpModule module);
}
}
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs
index 65a1d44b0e..7e31ffa6df 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs
@@ -1,4 +1,5 @@
using System;
+using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity.PlugIns;
@@ -6,6 +7,7 @@ namespace Volo.Abp.Modularity
{
public interface IModuleLoader
{
- AbpModuleDescriptor[] LoadModules(IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources);
+ [NotNull]
+ AbpModuleDescriptor[] LoadModules([NotNull] IServiceCollection services, [NotNull] Type startupModuleType, [NotNull] PlugInSourceList plugInSources);
}
}
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs
index b1de3ac201..d50ddc7611 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs
@@ -1,9 +1,11 @@
using System.Collections.Generic;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity
{
public interface IModuleManager
{
+ [NotNull]
IReadOnlyList Modules { get; }
void InitializeModules();
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs
index 9893482bf4..5d5f5a691f 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity.PlugIns;
using Volo.ExtensionMethods.Collections.Generic;
@@ -9,8 +10,13 @@ namespace Volo.Abp.Modularity
{
public class ModuleLoader : IModuleLoader
{
- public AbpModuleDescriptor[] LoadModules(IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources)
+ [NotNull]
+ public AbpModuleDescriptor[] LoadModules([NotNull] IServiceCollection services, [NotNull] Type startupModuleType, [NotNull] PlugInSourceList plugInSources)
{
+ Check.NotNull(services, nameof(services));
+ Check.NotNull(startupModuleType, nameof(startupModuleType));
+ Check.NotNull(plugInSources, nameof(plugInSources));
+
var modules = new List();
FillModules(modules, services, startupModuleType, plugInSources);
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs
index 101cd1bff0..e0b22741ac 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using JetBrains.Annotations;
using Volo.Abp.Reflection;
using Volo.ExtensionMethods.Collections.Generic;
@@ -12,13 +13,16 @@ namespace Volo.Abp.Modularity.PlugIns
public SearchOption SearchOption { get; set; }
- public FolderPlugInSource(string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly)
+ public FolderPlugInSource([NotNull] string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly)
{
+ Check.NotNull(folder, nameof(folder));
+
Folder = folder;
SearchOption = searchOption;
}
- public List GetModules()
+ [NotNull]
+ public Type[] GetModules()
{
var modules = new List();
@@ -41,7 +45,7 @@ namespace Volo.Abp.Modularity.PlugIns
}
}
- return modules;
+ return modules.ToArray();
}
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs
index d5746e029c..9c51b1a990 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs
@@ -1,10 +1,11 @@
using System;
-using System.Collections.Generic;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity.PlugIns
{
public interface IPlugInSource
{
- List GetModules();
+ [NotNull]
+ Type[] GetModules();
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs
index 7cd1556483..bf44f94605 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs
@@ -1,18 +1,21 @@
using System;
-using System.Collections.Generic;
using System.Linq;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity.PlugIns
{
public static class PlugInSourceExtensions
{
- public static List GetModulesWithAllDependencies(this IPlugInSource plugInSource)
+ [NotNull]
+ public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource)
{
+ Check.NotNull(plugInSource, nameof(plugInSource));
+
return plugInSource
.GetModules()
.SelectMany(AbpModuleHelper.FindAllModuleTypes)
.Distinct()
- .ToList();
+ .ToArray();
}
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs
index 6055298bd4..1e96e26e14 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs
@@ -1,17 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity.PlugIns
{
public class PlugInSourceList : List
{
- internal List GetAllModules()
+ [NotNull]
+ internal Type[] GetAllModules()
{
return this
.SelectMany(pluginSource => pluginSource.GetModulesWithAllDependencies())
.Distinct()
- .ToList();
+ .ToArray();
}
}
}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs
index c5387f16f5..2dbf094b06 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs
@@ -1,17 +1,22 @@
using System;
using System.IO;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity.PlugIns
{
public static class PlugInSourceListExtensions
{
- public static void AddFolder(this PlugInSourceList list, string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly)
+ public static void AddFolder([NotNull] this PlugInSourceList list, [NotNull] string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly)
{
+ Check.NotNull(list, nameof(list));
+
list.Add(new FolderPlugInSource(folder, searchOption));
}
- public static void AddTypes(this PlugInSourceList list, params Type[] moduleTypes)
+ public static void AddTypes([NotNull] this PlugInSourceList list, params Type[] moduleTypes)
{
+ Check.NotNull(list, nameof(list));
+
list.Add(new PlugInTypeListSource(moduleTypes));
}
}
diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs
index ca09a6c306..59fed51bcd 100644
--- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs
+++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs
@@ -1,6 +1,5 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
+using JetBrains.Annotations;
namespace Volo.Abp.Modularity.PlugIns
{
@@ -10,12 +9,13 @@ namespace Volo.Abp.Modularity.PlugIns
public PlugInTypeListSource(params Type[] moduleTypes)
{
- _moduleTypes = moduleTypes;
+ _moduleTypes = moduleTypes ?? new Type[0];
}
- public List GetModules()
+ [NotNull]
+ public Type[] GetModules()
{
- return _moduleTypes.ToList();
+ return _moduleTypes;
}
}
}
\ No newline at end of file