StyleCop clean OjbectCreator

This commit is contained in:
Matthias Mailänder
2013-08-04 09:04:36 +02:00
parent 32cbe4620f
commit 2653f95853

View File

@@ -19,7 +19,7 @@ namespace OpenRA
{
public class ObjectCreator
{
Pair<Assembly, string>[] ModAssemblies;
Pair<Assembly, string>[] modAssemblies;
public ObjectCreator(Manifest manifest)
{
@@ -35,7 +35,7 @@ namespace OpenRA
asms.AddRange(asm.GetNamespaces().Select(ns => Pair.New(asm, ns)));
}
ModAssemblies = asms.ToArray();
modAssemblies = asms.ToArray();
}
public static Action<string> MissingTypeAction =
@@ -48,7 +48,7 @@ namespace OpenRA
public T CreateObject<T>(string className, Dictionary<string, object> args)
{
foreach( var mod in ModAssemblies )
foreach (var mod in modAssemblies)
{
var type = mod.First.GetType(mod.Second + "." + className, false);
if (type == null) continue;
@@ -63,6 +63,7 @@ namespace OpenRA
else
throw new InvalidOperationException("ObjectCreator: UseCtor on multiple constructors; invalid.");
}
MissingTypeAction(className);
return default(T);
}
@@ -82,13 +83,14 @@ namespace OpenRA
if (!args.ContainsKey(key)) throw new InvalidOperationException("ObjectCreator: key `{0}' not found".F(key));
a[i] = args[key];
}
return ctor.Invoke(a);
}
public IEnumerable<Type> GetTypesImplementing<T>()
{
var it = typeof(T);
return ModAssemblies.Select( ma => ma.First ).Distinct()
return modAssemblies.Select(ma => ma.First).Distinct()
.SelectMany(ma => ma.GetTypes()
.Where(t => t != it && it.IsAssignableFrom(t)));
}