Плагин MissingMethodException CRM2011

Я нашел пару предложений по этому вопросу, но я не могу понять свою проблему.

Мы получили .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(); выдает Исключение. Я совершенно не понимаю, что здесь происходит и почему этот фрагмент кода отлично работает в тестовом приложении.


person ICantSeeSharp    schedule 16.04.2013    source источник


Ответы (1)


Я предполагаю, что это потому, что вы либо пытаетесь создать статический класс, либо класс без пустого конструктора. Добавьте try catch, который отображает тип, который пытается быть создан, чтобы сузить круг происходящего.

person Daryl    schedule 16.04.2013
comment
Спасибо за Ваш ответ. Я посмотрю на это :) - person ICantSeeSharp; 23.04.2013