扩展方法作为强类型包装器

扩展方法可用于为类字典对象编写强类型包装器。比如一个缓存,HttpContext.Items 在 cetera …

public static class CacheExtensions
{
    public static void SetUserInfo(this Cache cache, UserInfo data) => 
        cache["UserInfo"] = data;

    public static UserInfo GetUserInfo(this Cache cache) => 
        cache["UserInfo"] as UserInfo;
}

这种方法消除了在整个代码库中使用字符串文字作为键的需要,以及在读取操作期间需要转换为所需类型的需要。总的来说,它创建了一种更安全,强类型的方式来与诸如字典之类的松散类型的对象进行交互。