/// <summary>
        /// Returns the value of the string resource.
        /// </summary>
        /// <param name="serviceProvider">Object that can provide services for the markup extension.</param>
        /// <returns>The string value.</returns>
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            string value = "";

            IProvideValueTarget target = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));

            if (target != null)
            {
                DependencyObject d = (DependencyObject)target.TargetObject;
                if (d != null)
                {
                    if (!String.IsNullOrEmpty(_assemblyName) && !String.IsNullOrEmpty(_baseName))
                    {
                        value = ResourceStringCoordinator.InitializeValue(
                            d,
                            target.TargetProperty,
                            _assemblyName,
                            _baseName,
                            _name);
                    }
                    else
                    {
                        value = ResourceStringDecorator.InitializeValue(
                            d,
                            target.TargetProperty,
                            _name);
                    }
                }
            }
            return(value);
        }
 /// <summary>
 /// Returns the value of the specified String resource.
 /// </summary>
 /// <param name="resourceName">The name of the resource to get.</param>
 /// <returns>The value of the resource localized for the caller's current culture settings. If a match is not possible, a null reference is returned.</returns>
 public string GetString(string resourceName)
 {
     return(ResourceStringCoordinator.GetString(
                _assemblyName,
                _baseName,
                resourceName));
 }