1

我有一个自定义设置类,如下所示。

[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")]
public sealed partial class CustomSettings : global::System.Configuration.ApplicationSettingsBase
{
    private static CustomSettings defaultInstance2 = ((CustomSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new CustomSettings())));

    public static CustomSettings Default2
    {
        get
        {
            return defaultInstance2;
        }
    }

    [global::System.Configuration.ApplicationScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public List<TextReplacementRule> TextReplacementRules
    {
        get { return (List<TextReplacementRule>)this["TextReplacementRules"]; }
        set { this["TextReplacementRules"] = value; }
    }

    [Serializable]
    public class TextReplacementRule
    {
        public string Name { get; set; }
        public string Channel { get; set; }
        public string ReplaceTo { get; set; }
        public string ReplaceWith { get; set; }

    }
}

配置设置如下。

<AccessingConfigToUI.Properties.CustomSettings>
      <setting name="TextReplacementRules"  serializeAs="Xml" >
        <value>
          <ArrayOfTextReplacementRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <TextReplacementRule>
              <Name>Rule1</Name>
              <Channel>EMAIL</Channel>
              <ReplaceTo>VAL1</ReplaceTo>
              <ReplaceWith>VAL2</ReplaceWith>
            </TextReplacementRule>
            <TextReplacementRule>
              <Name>Rule2</Name>
              <Channel>EMAIL</Channel>
              <ReplaceTo>VAL1</ReplaceTo>
              <ReplaceWith>VAL2</ReplaceWith>
            </TextReplacementRule>
          </ArrayOfTextReplacementRule>
        </value>
      </setting>
      </AccessingConfigToUI.Properties.CustomSettings>

我正在尝试使用下面的代码访问 javascript 中的配置。

   <script type="text/javascript">
       var configSetting = "@(AccessingConfigToUI.Properties.CustomSettings.Default2.TextReplacementRules)";
   </script>

在调试时,我确实在 this["TextReplacementRules"] 中看到了 2 条记录,但是 JS 变量 - "configSetting" 在页面呈现后具有以下值。

System.Collections.Generic.List`1[AccessingConfigToUI.Properties.CustomSettings+TextReplacementRule]"

似乎是序列化问题。我需要查看配置文件中设置的值。(2 条记录)。

请帮忙。

4

0 回答 0