问题标签 [unsubscribe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
19112 浏览

.net - 使用 IDisposable 取消订阅事件

我有一个处理来自 WinForms 控件的事件的类。根据用户正在做的事情,我正在推迟该类的一个实例并创建一个新实例来处理相同的事件。我需要先从事件中取消订阅旧实例 - 很简单。如果可能的话,我想以非专有的方式来做这件事,这似乎是 IDisposable 的工作。但是,大多数文档仅在使用非托管资源时才建议使用 IDisposable,这在此处不适用。

如果我实现 IDisposable 并取消订阅 Dispose() 中的事件,我是否会歪曲它的意图?我应该提供一个 Unsubscribe() 函数并调用它吗?


编辑:这是一些显示我在做什么的虚拟代码(使用 IDisposable)。我的实际实现与一些专有数据绑定有关(长话短说)。

在实际代码中,“EventListener”类涉及的比较多,每个实例都具有唯一意义。我在一个集合中使用它们,并在用户单击时创建/销毁它们。


结论

我接受gbjbaanb 的回答,至少现在是这样。我觉得使用熟悉的界面的好处超过了在不涉及非托管代码的情况下使用它的任何可能的缺点(这个对象的用户怎么会知道这一点?)。

如果有人不同意 - 请发布/评论/编辑。如果可以针对 IDisposable 提出更好的论据,那么我将更改已接受的答案。

0 投票
3 回答
10453 浏览

email - 为您的时事通讯实施退订链接的最佳方式是什么?

我在想我创建了一个停用代码,将其与他们的用户 ID 一起放在取消订阅链接中。然后,当我的时事通讯的收件人单击该链接时,我可以查看他们的用户 ID 并查看停用代码是否匹配。

这听起来像是最好的方法吗?

还有哪些方法?

0 投票
2 回答
2818 浏览

paypal - Paypal 退订返回网址

我在 Java 中创建了一个贝宝取消订阅按钮,当用户点击它并登录到贝宝帐户并取消订阅后,贝宝在 notifyurl 上成功发布,我可以更新我的数据库。但我想在取消订阅后返回我的网站. 但不能这样做。

有什么办法可以让我返回我的网站,显示 GUI。

退订按钮代码贝宝只为我提供了以下网址 https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=sellr1_1252495907_biz%40gmail%2ecom

通知网址是我的 servlet。

提前致谢。

-泽山

0 投票
5 回答
47781 浏览

c# - 我应该取消订阅活动吗?

我有 3 个关于事件的问题:

  1. 我应该总是取消订阅已订阅的事件吗?
  2. 如果我不这样做会怎样?
  3. 在以下示例中,您将如何取消订阅已订阅的事件?

例如,我有以下代码:

Tor:目的:用于数据库属性更新

这: 目的:对于 GUI 绑定,将模型包装到视图模型中

0 投票
1 回答
829 浏览

ruby-on-rails - 在 Rails 中,哪些 gems/plugins 可用于取消订阅支持?

哪些 gems/plugin 可以轻松地在电子邮件底部添加防篡改取消订阅链接,用户可以单击以防止接收这些类型的电子邮件?

我唯一能找到的是http://kevinlochner.com/handling-unsubscribe-requests-in-ruby-on-rail ,它可以工作,但有点简单,并且缺乏诸如取消订阅哪种类型的电子邮件等功能。它也不包括用户取消订阅的机制。

编辑:这个 gem 有助于防止邮件传递,但不支持取消订阅链接。github.com/myronmarston/email_blacklist

我们自己使用 email_blacklist gem 和带有 HMAC 身份验证的取消订阅模型/控制器的组合实现了这一点

0 投票
8 回答
3001 浏览

security - 为什么不在取消订阅链接中使用电子邮件地址

给我几个理由,为什么不在我们的时事通讯中包含取消订阅链接的纯文本形式的电子邮件地址。

现在是:

我正在推动:

我真的不喜欢以纯文本形式发送电子邮件地址的想法,但需要说服我的经理注意可能的威胁。

更新:虽然所有答案都建议我应该如何保护它,而不是为什么我应该保护它,但我发现 do-ob 的答案最合适。

0 投票
1 回答
451 浏览

wpf - PRISM 和事件聚合器

我有一个 PRISM WPF 应用程序;我有一个 PatientViewModel,它在其构造函数中订阅一个事件(比如说 CultureChangedEvent),并执行一个动作。

在我的主视图模型中,我有一个 ObservableCollection。

如果用户从 ObservableCollection 中删除 PatientViewModel 实例,然后触发 CultureChangedEvent,则删除的 PatientViewModel 仍在内存中并接收事件。因此,目前,在删除 PatientViewModel 时,我取消了该事件的订阅;但我想知道这是正确的方法吗?还是我错过了什么?

谢谢!大号

0 投票
1 回答
2188 浏览

c# - 为什么在尝试取消订阅事件时,无法识别事件处理程序对象?

事实证明这是一个很长的问题,所以提前感谢所有放弃时间阅读并评论/回答的人:)


编辑

  • 这个问题已大大简化。
  • 示例代码现在是一个完整、简单的程序


我正在使用通过接口实现的观察者模式:


我创建了两个实现这些接口的简单类当对象中引发事件MyObserver时,对象将简单地向控制台窗口输出一个字符串。NotifyMySubject


该测试程序表明:

  • 之前myObserver订阅了事件没有消息输出到控制台窗口。
  • myObserver订阅事件后Notify,消息将输出到控制台窗口。
  • 取消myObserver订阅Notify事件后,消息仍输出到控制台窗口

    /li>

我遇到的问题是取消订阅过程不起作用

我真的不明白为什么。


问题

  • 为什么取消订阅过程不起作用?
  • 比较 2 个事件处理程序时会发生什么?它们如何定义为相等或不相等?这可能会导致为什么调用列表Contains方法总是返回的答案false
0 投票
6 回答
544 浏览

c# - 取消订阅通过 ref 关键字传递给订阅方法的委托?

我有以下课程:

我搜索了一段时间,似乎无法存储使用 ref 关键字传递的参数。尝试将源参数添加到列表或将其分配给字段变量不允许它保留对实际委托的原始引用的引用;所以我的问题是:

  • 有没有办法取消订阅所有来源而不再次传递它们的引用?
  • 如果不是,如何更改类以支持它,但仍然通过方法传递委托来维护订阅?
  • 不使用反射是否可以实现它?
  • 是否可以在不将委托/事件包装在一个类中然后将该类作为订阅参数传递的情况下实现它?

谢谢你。

编辑:似乎不使用包装器或反射,没有解决给定问题的方法。我的目的是使该类尽可能可移植,而不必将委托包装在辅助类中。感谢大家的贡献。

0 投票
2 回答
1771 浏览

php - 如何在一次发送给多个用户的电子邮件中添加取消订阅链接

我正在通过取消订阅链接向站点中的所有注册用户发送通知邮件。目前我正在遍历数据库中的所有用户并向每个用户发送邮件。对于取消订阅链接,我添加了用户电子邮件,以便在每个用户单击链接时区分它们。电子邮件中除取消订阅链接外的所有内容均相同。

有没有办法一次向所有用户发送邮件而不循环并为每个用户获取不同的取消订阅链接,这样我可以在每个用户单击链接时区分他们