2015-01-08 19 views
0

我按照方向here添加了一个新的扩展,以便在新图像上传到Ektron时触发事件。我在我的项目的App_Code文件夹中创建新文件:Ektron CMS - 用于OnAfterAdd的新扩展功能不起作用

using System; 
using System.Collections.Generic; 
using System.Text; 
using Ektron.Cms; 
using Ektron.Cms.Common; 
using Ektron.Cms.Extensibility; 
using Ektron.Cms.Extensibility.Content; 

namespace Cms.Extensions.Samples 
{ 
    public class UploadExtension : LibraryStrategy 
    { 
     public override void OnAfterAdd(LibraryData taxonomyData, CmsEventArgs eventArgs) 
     { 
      string[] lines = { "Written on Ektron upload event!" }; 
      System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WORKING.txt", lines); 

      var x = taxonomyData; 
     } 

     public override void OnAfterUpdate(LibraryData taxonomyData, CmsEventArgs eventArgs) 
     { 
      var x = taxonomyData; 
     } 

     public override void OnBeforeDelete(long id, CmsEventArgs eventArgs) 
     { 
      var x = id; 
     } 
    } 
} 

我只是把一个检测线每种方法,这样我可以添加一个断点,看看它是否击中。我注册的ObjectFactory新的扩展:

<objectFactory> 
    <objectStrategies> 
     <add name="Library"> 
      <strategies> 
      <add name="EktronUploadExtension" type="Cms.Extensions.Samples.UploadExtension"/> 
      <add name="GoogleGeoCoder" type="Cms.Extensions.GoogleGeoCoder.LibraryStrategy, Cms.Extensions.GoogleGeoCoder"/> 
      </strategies> 
     </add> 
    </objectStrategies> 
</objectFactory> 

它看起来像我正确的一切成立,但我连着处理,开辟了我晔的工作区,并上传了新的图像库,但没有我的断点(特别是OnAfterAdd中的断点)被击中。我不知道如何调试或找出我的扩展有什么问题。

编辑:我修复了objectfactory.config文件,但它仍然无法正常工作。 UploadExtension.cs中的断点不起作用,当我在Ektron中添加新的库项目时,我放入函数的测试文件没有写入。

+0

只是为了确认,你是通过在工作区的库部分增加你的形象? –

+0

这是正确的 –

回答

1

您的objectfactory.config文件不正确。您已经创建了一个LibraryStrategy,但将其放入了objectfactory.config的Content Strategy部分。

您应该添加一个名为“库”部分中的配置文件,如下所示:

<add name="Library"> 
    <strategies> 
    <add name="MyFirstExample" 
       type="Cms.Extensions.Samples.UploadExtension"/> 
    </strategies> 
</add> 
+0

修正了你的建议,但它仍然没有做任何事情。 –