当Login在MessengerClient上打字时,联系名单/名册通过边远服务器和经过处理的袖珍,然后客户被视为挂在册,
Once logged in, the client receives live updates from the remote server as they occur.
在记录过程中处理联系清单/名册 我认为,终端用户的理想设计是掌握所有接触清单/名册数据,而客户则被视为有缺陷。 这样,当用户收到路标时 在活动中,他们能够立即获得联系数据。
For example -
这里,我们有“
void MsgrLoggedIn(object sender, EventArgs a)
{
_msgr.Contacts.Contains("[email protected]"); //returns true
}
Since all of the contact list has been processed BEFORE the client is marked as logged in, and BEFORE the LoggedIn event has been raised, the above statement returns true. Logically I believe this is what the end user would expect, as downloading and processing the contact list is part of the login operation.
现在,我还要提出在联系名单上增加联系或加入小组时发生的事件。 根据迄今为止提到的逻辑一,在数据处理过程中,显然没有必要提出
void MsgrContactAdded(object sender, ContactEventArgs e)
{
_msgr.SendMessage(e.Contact, "hello there"); // throws NotLoggedInException
}
如上所示,这将造成坏事。
因此,我确实需要做的是处理联络名单数据,提高所记录的事件,然后在其后提出所有其他联系活动。
为此,我只能对所有接触物体、团体目标等进行播音,并提出适当的事件。
至今为止的罚款?
然而,问题在于,除了在第一日志上下载接触清单数据外,如果客户被拖出,然后被拖回,我还必须准备同步进行联系数据。
这将涉及诸如联系人、联系人、联系人等活动。
因此,它不再简单地重复接触、团体等,因为现在我必须考虑到已经拆除或改变其财产的联系。
因此,我需要一种替代方式,即在标志发生之后,才能提出这些事件。
I ve considered having classes to represent each of the synchronization events - eg.. SyncContactRemoved, SyncContactNameChanged, SyncContactAddedToGroup. With this I can process the data, and create a Sync*XXX* class for each event and add them to a list which I can then iterate after login.
我也考虑对物体本身有办法。 页: 1 Group.SyncContacts 此外,SyncNameChanged,SierClient.SyncContactsAdded。 然后,我可以自行处理伐木后的接触/小组等,检查这些财产,必要时提出事件,然后予以清除。
Finally I ve considered having an Event class which contains an EventHandler and EventArgs. The events could be queued up in this fashion and then invoked one by one after login.
如果是的话,这些模式中哪一种将被视为较为常见的做法。 或者是否有其他办法实现这一目标?
我对这一长期问题表示歉意,但这不是一个简单的问题。
成就