0

我在这个问题上找到了一些建议,但我无法解决我的问题。

我们得到了一个 .ddl,它替换了 word 文件中的占位符并返回了一个内存流。这在带有 WPF 前端的交付测试应用程序中运行良好。

现在我们需要在 CRM2011 环境中使用这个解决方案。我在我的 CRM 项目中添加了对这个 .dll 文件的引用,完全按照示例中的方式构建逻辑,然后出现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(); 抛出异常。我完全不知道这里出了什么问题,以及为什么这段代码在测试应用程序上运行良好。

4

1 回答 1

0

我假设这是因为您要么尝试创建静态类,要么尝试创建没有空构造函数的类。添加 try catch 以显示尝试创建的类型以缩小正在发生的事情。

于 2013-04-16T16:38:25.843 回答