zoukankan      html  css  js  c++  java
  • Enterprise Library Additions: String Resource Generator

    Enterprise Library Additions: String Resource Generator

     

    Written by: Rickie Lee (rickieleemail#yahoo.com)

    My blog: www.cnblogs.com/rickie

    Enterprise Library v1.0Application Blocks中大量采用SR.strings作为字符串资源文件,记录应用程序中需要的输出信息。通过String Resource Generator处理后,该文件自动产生同名的.CS.RESX文件。其中.CS文件是一个用来访问这些字符串资源的类,包括格式化参数的特性,如.NET {}格式相同,具体可以查阅String.Format帮助。

     

    1. String Resource Generator简介

    Version1.2.5

    作者:Martin, his blog: http://wah.onterra.net/blog/

    Download: http://projectdistributor.readify.net/Projects/Project.aspx?projectId=2

    安装:下载上诉MSI文件安装即可,通过VS.NET在现有的.RESXSR.strings文件设置Custom tool属性为:StringResourceToolSRCodeGen

    蝈蝈俊.net对上述工具也有简单介绍。

     

    2. String Resource Generator v1.2.5新支持如下特性:

    • 支持VB.NET(当然有C#
    • 支持改变类的名称,通过使用不同的.strings文件名
    • 支持定制namespace,通过在solution explorer中设置custom tool namespace属性
    • 支持多个.strings文件,如SR.strings, SR.strings-de, SR.strings-cn,要求后缀中不允许有. dot
    • 当然还有好多其他功能,具体可以查询上述链接

     

    3. SR.strings文件编辑

    特殊字符说明:

    #;   注释字符串

    #!    指定特殊选项

    #! accessor_class_accessibility = public 定义SR类为public,而不是缺省的internal

    #! culture_info = <YourCodeHere> 定义特定的culture,而不是缺省的Culture属性。

    #! generate_class = false 设置不自动生成class,如下所示:

    #! generate_class = false

    [strings.de]

    ResName = German blah

     

    简单的方法是照着Enterprise LibrarySR.strings文件编辑就可以了。如下是节选Security Application Block Quick StartSR.strings文件:

    #

    # Options description:

    #

     

    # Options are specified as lines starting with "#!"

    # To use an option below delete the first # in the corresponding line

     

    # To define the SR class public instead of internal (default):

    ##! accessor_class_accessibility = public

     

    # To use a code fragment as the culture instead of the Culture property (default):

    ##! culture_info = <YourCodeHere>

    # for example, #! culture_info = MyResources.CommonCultureInfo

    # where CommonCultureInfo is a static member of a class MyResources

     

    #! accessor_class_accessibility = public

     

    [strings]

     

    #Messages used by database management scenarios

    CreateUserTitleMessage = Create a new user

    UserCreatedMessage(username) = User {0} created.

    DeleteUserMessage(username) = User {0} deleted.

    AddUserRoleMessage(username, role) = Role {1} added for user {0}.

    DeleteUserRoleMessage(username, role) = Role {1} deleted for user {0}.

    AddUserRoleErrorMessage = Please select a user name and select or enter a role.

    DeleteUserRoleErrorMessage = Please select a user name and a role.

    DeleteUserErrorMessage = Please select a user name.

    ErrorMessage = Error

     

    节选的SR.cs文件(并不是上述SR.strings对应的SR.cs类文件):

    public class SR

    {

        public static System.Globalization.CultureInfo Culture

        {

            get

            {

                return Keys.Culture;

            }

            set

            {

                Keys.Culture = value;

            }

        }

       

        public static string AddUserRoleErrorMessage

        {

            get

            {

                return Keys.GetString(Keys.AddUserRoleErrorMessage);

            }

        }

       

        public static string AuthenticateTitleMessage

        {

            get

            {

                return Keys.GetString(Keys.AuthenticateTitleMessage);

            }

        }

    }

    作者:Rickie Lee (rickieleemail#yahoo.com)

    本文参考String Resource Generator项目和Enterprise Library Security Application Block Quickstart. Special thanks go out to Martin.

     

    Reference:

    1. Rickie, Microsoft patterns & practices Enterprise Library系列分析文章

     

  • 相关阅读:
    Jessica's Reading Problem POJ
    FatMouse and Cheese HDU
    How many ways HDU
    Humble Numbers HDU
    Doing Homework again
    Stacks of Flapjacks UVA
    Party Games UVA
    24. 两两交换链表中的节点
    面试题 03.04. 化栈为队
    999. 可以被一步捕获的棋子数
  • 原文地址:https://www.cnblogs.com/rickie/p/108357.html
Copyright © 2011-2022 走看看