#if NET_2_0
using System;
-using System.Collections;
+using System.Collections.Generic;
using System.Reflection;
using Microsoft.Build.Framework;
using Mono.XBuild.Framework;
internal class TaskDatabase {
// full name -> AssemblyLoadInfo
- IDictionary assemblyInformation;
+ Dictionary <string, AssemblyLoadInfo> assemblyInformation;
// full name -> Type
- IDictionary typesByFullName;
+ Dictionary <string, Type> typesByFullName;
// short name -> Type
- IDictionary typesByShortName;
+ Dictionary <string, Type> typesByShortName;
public TaskDatabase ()
{
- assemblyInformation = new Hashtable ();
- typesByFullName = new Hashtable ();
- typesByShortName = new Hashtable ();
+ assemblyInformation = new Dictionary <string, AssemblyLoadInfo> ();
+ typesByFullName = new Dictionary <string, Type> ();
+ typesByShortName = new Dictionary <string, Type> ();
}
public void RegisterTask (string classname, AssemblyLoadInfo assemblyLoadInfo)
{
assemblyInformation.Add (classname, assemblyLoadInfo);
Assembly assembly;
- if (assemblyLoadInfo.InfoType == LoadInfoType.AssemblyFilename) {
+
+ if (assemblyLoadInfo.InfoType == LoadInfoType.AssemblyFilename)
assembly = Assembly.LoadFrom (assemblyLoadInfo.Filename);
- } else if (assemblyLoadInfo.InfoType == LoadInfoType.AssemblyName) {
+ else if (assemblyLoadInfo.InfoType == LoadInfoType.AssemblyName)
assembly = Assembly.Load (assemblyLoadInfo.AssemblyName);
- } else {
+ else
assembly = Assembly.Load (assemblyLoadInfo.AssemblyNameString);
- }
+
Type type = assembly.GetType (classname);
typesByFullName.Add (classname, type);
typesByShortName.Add (GetShortName (classname), type);
public Type GetTypeFromClassName (string classname)
{
- if (typesByFullName.Contains (classname) == false) {
- if (typesByShortName.Contains (classname) == false)
+ if (!typesByFullName.ContainsKey (classname)) {
+ if (!typesByShortName.ContainsKey (classname))
throw new Exception ("Not registered task.");
- else {
- return (Type) typesByShortName [classname];
- }
+ else
+ return typesByShortName [classname];
} else
- return (Type) typesByFullName [classname];
+ return typesByFullName [classname];
}
public void CopyTasks (TaskDatabase taskDatabase)
{
- foreach (DictionaryEntry de in taskDatabase.assemblyInformation)
- assemblyInformation.Add (de.Key, de.Value);
- foreach (DictionaryEntry de in taskDatabase.typesByFullName)
- typesByFullName.Add (de.Key, de.Value);
- foreach (DictionaryEntry de in taskDatabase.typesByShortName)
- typesByShortName.Add (de.Key, de.Value);
+ foreach (KeyValuePair <string, AssemblyLoadInfo> kvp in taskDatabase.assemblyInformation)
+ assemblyInformation.Add (kvp.Key, kvp.Value);
+ foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByFullName)
+ typesByFullName.Add (kvp.Key, kvp.Value);
+ foreach (KeyValuePair <string, Type> kvp in taskDatabase.typesByShortName)
+ typesByShortName.Add (kvp.Key, kvp.Value);
}
private string GetShortName (string fullname)
}
}
-#endif
\ No newline at end of file
+#endif