DotNetNuke 7.0.2 - 将FileManager.GetFile与FileID和PortalID一起使用

时间:2014-01-20 16:47:33

标签: .net vb.net dotnetnuke deprecated portal

正在升级我们的DNN版本......并且遇到了一个小障碍。

DNN 5.4的旧弃用代码

Dim objFileController As New FileController
Dim objImageInfo As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(myFileId, myPortalId)

7.0.2的新尝试

Dim objFileController As FileManager
Dim objImageInfo As DotNetNuke.Services.FileSystem.IFileInfo = objFileController.GetFile(myFileId)

但是,使用新方法有几个问题......

1)这并没有指定门户网站ID。我们有多个不同的门户网站,我需要能够过滤特定的门户网站。还有其他重载可以指定PortalID,但是您无法指定FileID ...

2)我收到一条警告,说明在分配值之前已经使用了objFileController。但是如果我把" Dim __作为New FileManager"然后它会抛出一个编译错误,因为这个朋友' FileManager的上下文。


* 编辑 *

我看到了一些对FileManager.Instance.GetFile(FileID)的引用。 。 。 Instance只是引用正在运行的站点的当前门户吗?如果是这样,我可以使用它,只需传入FileID ...

1 个答案:

答案 0 :(得分:3)

  1. 文件只能位于一个门户网站中,因此如果您拥有该文件的ID,则无需指定门户网站ID。如果要验证,可以检查您获取的PortalId对象的IFileInfo属性。
  2. 没有为FileManager公开构造函数,但您使用静态Instance方法来获取文件管理器的当前实例(不是特定于门户网站)。