在部分受信任程序集中,所有的代码都是安全透明的

所以在这个程序集里,即使你给你自己的Exception派生类的GetObjectData重写应用了SecurityCriticalAttribute,这个函数实际上还是安全透明(Security Transparent)的。(可以用反射获知。)但Exception.GetObjectData是安全关键(Security Critical)的,所以在沙盒程序集中以部分信任的方式加载引发TypeLoadException也算是在情理之中吧。比如 Continue reading “在部分受信任程序集中,所有的代码都是安全透明的”

不要持久化 HashCode

如下所示

#if DEBUG
                    // We want to ensure we can change our hash function daily.
                    // This is perfectly fine as long as you don't persist the
                    // value from GetHashCode to disk or count on String A 
                    // hashing before string B.  Those are bugs in your code.
                    hash1 ^= ThisAssembly.DailyBuildNumber;
#endif
                    return hash1 + (hash2 * 1566083941);

一例由 MathType 引发 MS 公式无法使用的解决方案

今天手贱装了个 MathType 6.9 ,卸载之后发现 Office 自带的 Microsoft公式 3.0 无法使用。症状为,插入 Microsoft公式 3.0 后弹出提示

Microsoft Word 无法开始运行打开此目标所需的应用程序。
这项功能出现了错误,而且已无法再正确运行。是否现在修复这项功能?

选择“是”修复后并没有任何卵用。
后来尝试修复 Office 以及卸载重装,然而,也并没有用。
Continue reading “一例由 MathType 引发 MS 公式无法使用的解决方案”

关于 MVC 中 EF 外键处理的一个小坑

使用 CodeFirst 进行建模。例如,已有以下实体,在MVC中是启用延迟加载的。

    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public class Post
    {
        public int Id { get; set; }
        public User Author { get; set; }
    }

如果直接使用下面的语法进行查询的话,如果对应的`User`没有被EF引擎加载,那么导航属性`Post.Author`会是`null`。

context.Posts.ToArray();

解决方法是,显式说明需要在返回的`Post`中加载`Author`导航属性的内容。

using System.Data.Entity;
//...
context.Posts.Include(p => p.Author).ToArray();

请参阅

Content is available under CC BY-SA 3.0 unless otherwise noted.