Asp.net中实现多语言的Page的扩展的基类

     在开发的过程很多项目需要实现多语言,特别是外企中开发的系统一般都是好几个语言的版本,我们以前开发项目时也需要实现多语言的功能

因此我们写了个Page类的扩展类,让每一个要实现多语言的页面都继承它。该类的实现如下:

 /// <summary>
/// Summary description for WebPageBase
/// </summary>
public class WebPageBase : System.Web.UI.Page
{
    public WebPageBase()
    {
        
    }

    protected override void InitializeCulture()
    {

        //设置初始的语言为日文
        string lang="ja-JP";
        if (!string.IsNullOrEmpty(Convert.ToString(Request["Lang"])))
        {
            lang = Convert.ToString(Context.Session["lang"]);
            Lang = lang;
        }
        else
        {
            lang = Convert.ToString(Context.Session["lang"]);
            Lang = lang;
        }

        // Culture 属性用于帮助本地化页内容。可以将其设置为任何有效的区域性 ID。

        //例如,en-us 区域性 ID 将页设置为美国英语,而 fr 区域性 ID 将页设置为法语。

        //还可以将该值 设置为 auto,从而自动检测浏览器的首选语言并设置该语言。可

        //以用默认值(如 auto:en-us)限定自动语言检测。        

        UICulture = lang;
        Culture = "";       

        base.InitializeCulture();
    }

    protected string Lang
    {
        get { return Convert.ToString(Context.Session["lang"]); }
        set { Context.Session["lang"] = value; }
    }
}

这个类的代码就这么简单,想要实现多语言的页面继承它即可。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在.NET设计权限控制的基类,可以考虑使用一个抽象或接口来定义权限控制的基本行为,并在需要控制权限的实现这个接口或继承这个抽象。下面是一个基础的权限控制基类设计: ```csharp // 权限控制接口 public interface IPermissionControl { bool HasPermission(string permission); } // 权限控制抽象 public abstract class PermissionControlBase { // 当前用户的权限列表 protected List<string> CurrentUserPermissions { get; set; } public PermissionControlBase(List<string> currentUserPermissions) { CurrentUserPermissions = currentUserPermissions; } // 检查当前用户是否有指定权限 public bool HasPermission(string permission) { return CurrentUserPermissions.Contains(permission); } } ``` 在这个设计,我们定义了一个IPermissionControl接口和一个PermissionControlBase抽象。IPermissionControl接口定义了权限控制的基本行为,而PermissionControlBase抽象实现了这个接口,并提供了一个CurrentUserPermissions属性来保存当前用户的权限列表,以及一个HasPermission方法来检查当前用户是否有指定权限。 实际使用时,我们可以在需要控制权限的实现IPermissionControl接口或继承PermissionControlBase抽象,并实现或重写HasPermission方法来定制权限控制的逻辑。例如: ```csharp public class OrderService : PermissionControlBase { public OrderService(List<string> currentUserPermissions) : base(currentUserPermissions) { } // 添加订单 public void AddOrder(Order order) { if (!HasPermission("AddOrder")) { throw new Exception("当前用户没有添加订单的权限"); } // ... 添加订单的逻辑 ... } // 删除订单 public void DeleteOrder(int orderId) { if (!HasPermission("DeleteOrder")) { throw new Exception("当前用户没有删除订单的权限"); } // ... 删除订单的逻辑 ... } } ``` 在这个例子,OrderService继承了PermissionControlBase抽象,并实现了AddOrder和DeleteOrder方法来添加和删除订单。在方法,我们通过HasPermission方法来检查当前用户是否有相应的权限,如果没有则抛出异常,否则执行相应的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值