public void LoadAssemblyIntoCache(Assembly assembly)
{
if (assembly == null)
{
throw new ArgumentNullException("assembly");
}
var cacheMappings =
(CacheMappingsAttribute[])assembly.GetCustomAttributes(typeof(CacheMappingsAttribute), false);
if (cacheMappings.Length == 0)
{
var message = string.Format(
"The given assembly '{0}' does not contain any cache information for generated types.",
assembly.FullName);
throw new ArgumentException(message, "assembly");
}
foreach (var mapping in cacheMappings[0].GetDeserializedMappings())
{
var loadedType = assembly.GetType(mapping.Value);
if (loadedType != null)
{
RegisterInCache(mapping.Key, loadedType);
}
}
}
#endif