我在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或某个地方的服务器上更新它,功能区将检索它并指向该页面。
这似乎是一个基本/简单的事情,但我似乎无法找到解决方案。
非常感谢
答案 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();
}
}