Я нашел пару предложений по этому вопросу, но я не могу понять свою проблему.
Мы получили .ddl, который заменяет заполнители в текстовом файле и возвращает поток памяти. Это прекрасно работает в доставленном тестовом приложении с WPF FrontEnd.
Теперь нам нужно это решение в контексте CRM2011. Я добавил ссылку на этот файл .dll в свой проект CRM, выстроил логику именно так, как показано в примере, и бум появилось исключение MissingMethodException.
Я отлаживал до того момента, когда выбрасывалось исключение, и нашел что-то вроде этого:
readonly Dictionary<Type, object> typeMap = new Dictionary<Type, object>();
/// <summary>
/// Returns an instance of the DataService implementing the <typeparamref name="TService"/> interface
/// </summary>
/// <typeparam name="TService">type of the interface for the DataService</typeparam>
/// <returns></returns>
public TService For<TService>()
{
if (typeMap.ContainsKey(typeof(TService)))
{
object value = typeMap[typeof(TService)];
if (value is Type)
{
return (TService)Activator.CreateInstance((Type)typeMap[typeof(TService)]);
}
return (TService)value;
}
return Activator.CreateInstance<TService>();
}
Строка Activator.CreateInstance(); выдает Исключение. Я совершенно не понимаю, что здесь происходит и почему этот фрагмент кода отлично работает в тестовом приложении.