1

我们有几个自定义列表,每个列表都有几个与之关联的事件接收器(尽管到目前为止实际上只编写了几个)。此事件接收器处理单个事件的混杂并执行各种功能。我的问题是如何以一种有意义的方式在 Visual Studio 解决方案/项目中组织它们。哪些事件接收器应该有自己的函数/类/文件夹/项目/解决方案?

目前,我们有两个解决方案,每个解决方案都只是使用 Visual Studio 默认使用的任何内容,在使用自己的解决方案创建新的事件接收器项目时。另一个有一个项目,其中一个文件夹以特定列表命名,该列表设置为处理该列表上的两个事件(ItemAdded 和 ItemUpdating)。该文件夹包含两个 C# 文件,每个文件都包含自己的类,其中包含一个用于该特定事件接收器的函数。

但是,如果我有多个事件接收器用于一个列表,我应该将它们放入一个文件中吗?还是放到同一个文件夹中的单独文件中?还是进入单独的项目?如果我有两个逻辑上不同的操作应该在同一个事件中对同一个列表项执行,我应该有一个事件接收器来执行这两个操作,还是为每个操作单独的事件接收器?

我目前的想法是为每个列表创建一个文件夹,为每个事件接收器提供单独的文件,并使用单个事件接收器在该事件期间执行任何适当的操作(无论是否独立)。我只是想知道什么是“最佳实践”类型的组织。

4

1 回答 1

0

这或多或少是个人观点,因为我还没有看到任何关于该主题的最佳实践。在我的项目中,列表及其相应的事件处理程序类具有以下结构:

12  
|- TEMPLATE  
|-- FEATURES  
|--- My Feature  
|---- CustomList1  
|----- Allitems.aspx  
|----- DispForm.aspx  
|----- EditForm.aspx  
|----- ListDefinition.xml  
|----- ItemEventReceiver.cs  
|----- ListEventReceiver.cs  
|----- schema.xml  
|----- Etc, etc...  
|---- CustomList2  
|----- Allitems.aspx  
|----- Etc, etc...  

我有一个用于项目接收器事件的文件和一个用于列表接收器事件的类。
在 ItemEventReceiver.cs 中,我有所有 ItemDeleting、ItemAdding 等,在 ListEventReceiver.cs 中我有 FieldAdding、FieldUpdated 等。

一种替代方法是将所有事件接收器代码/类放在单独的文件夹结构中,但我认为最好将它们与列表定义放在同一个文件夹中。这样,与该列表相关的所有内容都在一个地方。

最后,我认为您必须使用最适合您和您的团队的结构并且保持一致。

于 2010-03-09T11:29:00.773 回答