0

我正在用 C# 编写一个程序集,它将替换注册为 COM 的旧 DLL。旧 DLL 允许启用 COM 的应用程序(如 VB 或 Perl)或执行以下 VBS 示例中的操作:

dim All_Domains
set All_Domains = WScript.CreateObject("MailServerX.LocalDomains")

dim Specific_Domain
set Specific_Domain = All_Domains.Items(3)

dim Domain_Aliases
set Domain_Aliases = WScript.CreateObject("MailServerX.Lines")
Domain_Aliases.Add "one.com"
Domain_Aliases.Add "two.com"

Specific_Domain.Domain_Aliases = Domain_Aliases
All_Domains.Items(3) = Specific_Domain

正如您在最后一行中看到的,在传递参数“3”时正在分配属性/方法 LocalDomains.Items。

我需要在新程序集中维护相同的接口,以保持与访问旧 DLL 的所有现有脚本的兼容性。我有这个(非常总结的)C# 类:

public class LocalDomains
{
    private List<LocalDomain> itemsList = new List<LocalDomain>();
    # Assume the list is now loaded
    public LocalDomain Items(int index)
    {
        return itemsList[index];
    }
}

如何在类 LocalDomains 中编写 Items 方法,以便它不仅可以从列表中返回一个值,而且还可以接收一个值分配,以便它可以对 itemsList[index] 进行一些处理,包括为其分配新值?

我的意思是,保持我的第一个代码块的最后一行对新代码有效。

提前感谢您的任何建议!

4

0 回答 0