Получить сборку можно с помощью следующего механизма.
Assembly myAssembly = Assembly.Load(<your raw file stream>);
Вы можете зарегистрироваться для следующего события и обрабатывать его для обслуживания запрашиваемых типов, поступающих из пользовательских сборок:
AppDomain.CurrentDomain.TypeResolve += new ResolveEventHandler(CurrentDomain_TypeResolve);
static Assembly CurrentDomain_TypeResolve(object sender, ResolveEventArgs args)
{
Type resolvedType = myAssembly.GetType( args.Name, false);
}
К сожалению, любой тип, загруженный в вашу программу, может оказаться здесь, поэтому вы можете захотеть встроить некоторый механизм кэширования для хранения информации о типе