使用AutoMapper for Silverlight映射到内部类型

如何配置我的应用程序,使AutoMapper可以映射到Silverlight 5中的内部类型和/或属性? 例如,我有以下类型:

internal class SomeInfo
{
    public String Value { get; set; }
}

我尝试使用此类型作为目标调用Mapper.DynamicMap,并在运行时收到以下错误消息:

尝试通过安全透明方法'DynamicClass.SetValue(System.Object,System.Object)'访问安全关键类型'Acme.SomeInfo'失败。

我试着先实例化类,然后将实例传递给DynamicMap,并使用该属性的内部setter将类范围更改为public。 我还用[SecuritySafeCritical]属性标记了类。 所有这些测试都会导致相同的错误消息。

我能够克服这个问题的唯一方法就是让公众范围和公开制定者完全暴露这个班级。 当然,这是一个问题,因为我正在开发一个将被其他开发人员使用的类库,并且使用“内部”作用域是一种故意的策略来隐藏实现细节,并确保代码仅用于预期的目的没有DDD和CQRS的公共设置者概念)。

也就是说,我能做些什么来使AutoMapper能够处理内部类型和/或属性?

(注意:类库是为SL5构建的,并用于被配置为以高信任度运行时浏览器外的客户端应用程序。)


这更多的是Silverlight的限制 - 它不允许从外部程序集反射私有/受保护/内部成员,请参阅:

http://msdn.microsoft.com/en-us/library/stfy7tfc(VS.95).aspx

简单地说 - AutoMapper无法访问程序集的内部成员。

链接地址: http://www.djcxy.com/p/37409.html

上一篇: Mapping to an internal type with AutoMapper for Silverlight

下一篇: AutoMapper : Site wide usage of IValueFormatter for given types