示例#1
0
        public void Can_resolve_resource()
        {
            var expressionVisitor = new LocalizationNodeExpressionVisitor(() => Products.Value);
            expressionVisitor.ResourceName.ShouldEqual("Products");
            expressionVisitor.DefaultValue.ShouldEqual("Products value");

            expressionVisitor = new LocalizationNodeExpressionVisitor(() => Products.Categories.Edit);
            expressionVisitor.ResourceName.ShouldEqual("Products.Categories.Edit");
            expressionVisitor.DefaultValue.ShouldEqual("Edit category value");

            expressionVisitor = new LocalizationNodeExpressionVisitor(() => LoginAdditional.RememberMe);
            expressionVisitor.ResourceName.ShouldEqual("Login.Additional.RememberMe");
            expressionVisitor.DefaultValue.ShouldEqual("Remember me");

            expressionVisitor = new LocalizationNodeExpressionVisitor(() => Login.RememberMe);
            expressionVisitor.ResourceName.ShouldEqual("Resources.Security.Login.RememberMe");
            expressionVisitor.DefaultValue.ShouldEqual("Remember me");
        }
 /// <summary>
 /// Gets a resource string based on the specified expression.
 /// </summary>
 /// <param name="expression">The expression used to build the resource key</param>
 /// <param name="languageId">Language identifier</param>
 /// <param name="logIfNotFound">A value indicating whether to log error if locale string resource is not found</param>
 /// <param name="defaultValue">Default value</param>
 /// <param name="returnEmptyIfNotFound">A value indicating whether to empty string will be returned if a resource is not found and default value is set to empty string</param>
 /// <returns>A string representing the requested resource string.</returns>
 /// <remarks></remarks>
 public string GetResource(System.Linq.Expressions.Expression<Func<string>> expression, 
     ObjectId? languageId = null, 
     bool? logIfNotFound = null, 
     string defaultValue = "", 
     bool returnEmptyIfNotFound = false)
 {
     var expressionVisitor = new LocalizationNodeExpressionVisitor(expression);
     return GetResource(expressionVisitor.ResourceName, languageId, logIfNotFound, expressionVisitor.DefaultValue, returnEmptyIfNotFound);
 }