VB.NET动态更新VSTO功能区中的链接

时间:2018-05-17 18:53:53

标签: vb.net sharepoint

我在VSTO 2017上有一个自定义的Office Ribbon Add-in,内置于VB.NET(Framework 4.6.1)(无论哪个Office应用程序都需要在Excel,Word,Outlook和放大器中执行此操作; 微软幻灯片软件)。功能区有一个按钮,可以将用户带到一个链接,该链接当前是硬编码的(参见下面的示例):

Dim myLink1 as String = "http://www.bing.com"
Diagnostics.Process.Start(myLink1)  'Opens to bing.com

有没有办法让这个链接动态化?理想情况下,我可以在某处使用类似伪代码的表格或资源:

myLink1 = GoTo("http://MasterURL.com").RetrieveLink(1)
Diagnostics.Process.Start(myLink1) 'I can update myLink1 to google.com

这样,我不需要在myLink1更改的情况下向用户推送更新,我可以在某个网站MasterURL.com或某个地方的服务器上更新它,功能区将检索它并指向该页面。

这似乎是一个基本/简单的事情,但我似乎无法找到解决方案。

非常感谢

1 个答案:

答案 0 :(得分:0)

您基本上需要在按钮下拨打服务才能从您的在线存储中获取链接。 (或在最终用户机器上查询数据库)

为了举个例子,我点了一些测试API并找到了这个 https://jsonplaceholder.typicode.com/ 这些网站公开了一个API,每个人都可以调用它来进行测试

以下是一个示例,说明如何执行此操作(有很多方法),没有任何错误处理等。

class Program
{
    static void Main(string[] args)
    {
        // here is your on-line source
        var url = "https://jsonplaceholder.typicode.com/posts";

        string responseFromServer;

        var request = WebRequest.Create(url);
        request.Credentials = CredentialCache.DefaultCredentials;

        using (var response = request.GetResponse())
        {
            using (var dataStream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(dataStream);
                responseFromServer = reader.ReadToEnd();
            }
        }

        Console.WriteLine(responseFromServer);
        Console.Read();
    }
}