C# 重新部署后Sharepoint Web部件属性丢失

C# 重新部署后Sharepoint Web部件属性丢失,c#,sharepoint,sharepoint-2010,web-parts,C#,Sharepoint,Sharepoint 2010,Web Parts,我有一个sharepoint Web部件,它使用一些Web部件属性(本例中为字符串)。这些属性都可以正常工作,但是如果我对Web部件进行更改并部署到服务器上,现有属性将丢失 阅读breif后,我认为这可能与我的财产定义有关: public static string Exclusions; [Category("Extended Settings"), Personalizable(PersonalizationScope.Shared), WebBrowsabl

我有一个sharepoint Web部件,它使用一些Web部件属性(本例中为字符串)。这些属性都可以正常工作,但是如果我对Web部件进行更改并部署到服务器上,现有属性将丢失

阅读breif后,我认为这可能与我的财产定义有关:

    public static string Exclusions;
    [Category("Extended Settings"),
    Personalizable(PersonalizationScope.Shared),
    WebBrowsable(true),
    WebDisplayName("Library Exclusions"),
    WebDescription("Enter any Libraries to exclude. Use '|' to separate.")]
    public string _Exclusions
    {
        get { return Exclusions; }
        set
        { Exclusions = value;}
    }
public MyWebPart WebPart { get; set; }
我想知道我是否应该从这里删除“静态”。但是,当我这样做时,我不能再使用此属性,因为我已经:

protected override void OnPreRender(EventArgs e)
        {

            ((HiddenField)this.FindControl("DocumentLibraryListingHiddenWebPartProperties")).Value = DocumentLibraryListing.DocumentLibraryListing.Exclusions;

        }

有什么建议吗?

事实证明,丢失的设置/属性与静态字符串有关

我将我的财产更改为:

public string Exclusions;
[Category("Extended Settings"),
Personalizable(PersonalizationScope.Shared),
WebBrowsable(true),
WebDisplayName("Library Exclusions"),
WebDescription("Enter any Libraries to exclude. Use '|' to separate.")]
public string _Exclusions
{
    get { return Exclusions; }
    set
    { Exclusions = value;}
}
此外,我必须在CreateChildControls方法中执行以下操作:

protected override void CreateChildControls()
        {
            Control control = Page.LoadControl(_ascxPath);
            if (control!= null)
            {
                ((MyUserControl)control).WebPart = this;
            }
            Controls.Add(control);
        }
此外,在Web部件的ascx.cs文件中,我必须在类定义的正下方添加以下内容:

    public static string Exclusions;
    [Category("Extended Settings"),
    Personalizable(PersonalizationScope.Shared),
    WebBrowsable(true),
    WebDisplayName("Library Exclusions"),
    WebDescription("Enter any Libraries to exclude. Use '|' to separate.")]
    public string _Exclusions
    {
        get { return Exclusions; }
        set
        { Exclusions = value;}
    }
public MyWebPart WebPart { get; set; }
最后,我能够通过以下方式访问OnPreRender事件上的值:

this.WebPart.Exclusions
有关更多信息,请访问此网站: