簡體   English   中英

VSTO插件中的C#訪問數據

[英]C# Access Data in VSTO Addin

我正在創建VSTO插件。 我希望在Outlook啟動時創建一個字典,然后可以從OutlookRibbon類中的方法進行訪問。 創建此類詞典的最佳實踐或適當方法是什么? 我目前有在使用字典的方法中創建字典的方法,由於每次調用它的效率都很低。 這是代碼:

public partial class OutlookRibbon
{
    private void OutlookRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        genMyDict();
    }

    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        Archive();
    }
    void genMyDict()
    {
        Dictionary<string, string> myDict= new Dictionary<string, string>();
        myDict.Add("@x.com", "x");
        // many lines of this

    }

    void Archive()
    {
        if (myDict.ContainsKey("@x.com")) { // run code }
    }

顯然這會引發錯誤myDict在Archive()的當前上下文中不存在

我應該如何構造它,以便僅一次創建字典,但仍可以從OutlookRibbon類中的其他方法訪問該字典? 我似乎無法使其工作。 有沒有更好的方法來創建dict以便在VSTO Outlook插件中使用?

myDict在當前上下文中不存在

通過使其成為OutlookRibbon類的屬性來更改字典的范圍。 這將擴大其范圍,使其脫離genMyDict方法的本地化堆棧

public Dictionary<string, string> MyDictionary { get; set; }

void genMyDict()
{
    MyDictionary = new Dictionary<string, string>();
    MyDictionary.Add("@x.com", "x");
    ...
}

void Archive()
{
    if (MyDictionary.ContainsKey("@x.com")) { // run code }
}

這將使所有內容都可以訪問它。 為此,范圍的更改允許僅從一種方法訪問整個類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM