我想为C#
编写的遗留程序制作一个 Web 解析器模块,Delphi 6
并决定使用COM
它。C# 模块应该是类库中的 COM 服务器。有了基类型,一切都清楚了,但是如果解析器返回一个内部带有结构的对象,如何装饰 COM 类呢?返回的对象和结构是否也应该像 COM 类一样声明?
这是一段代码:
public struct SubitemParseResult
{
public string Field1;
public string Field2;
public string Field3;
}
//Should it be decorated with InterfaceType and Guid too?
public class ItemParseResult
{
public string Field1;
public int Field2;
public datetime Field3;
public SubitemParseResult SubitemField;
}
[InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB")]
public interface IItemParser
{
.................
}
[ClassInterface(ClassInterfaceType.None), Guid("AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA")]
public class ItemParser : IItemParser
{
.....
public ItemParseResult GetAndParse(string code)
{
.....
}
.....
}