我有一个ClassLibrary(在Visual Studio 2010 C#中),其中有一个名为Car的类:
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("ClassLibrary1.Car")]
public class Car
{
public Car()
{
Name = "";
Parts = new List<string>();
}
public string Name { get; set; }
public List<string> Parts { get; set; }
}
但是,当我在vb6项目中使用它时:没有属性“Parts”:
http://i.imgur.com/x4h3BMp.jpg?1我该怎么做才能使属性List<>可见?
当然,“AssemblyInfo.cs”文件包含以下内容:
[assembly: ComVisible(true)]
附注:我真的不想为每个列表创建一个类,像这样:
public class Parts
{
private List<string> _parts;
public Parts()
{
_parts = new List<string>();
}
public void Add(string part)
{
_parts.Add(part);
}
public string GetAt(int index)
{
if (0 <= index && index < _parts.Count)
return _parts[index];
return "";
}
public void Clear()
{
_parts.Clear();
}
public int Count{ get{ return _parts.Count; } }
}
由于数量太多。
class Parts : List<Part>
),并添加属性,那么这样做是否可以用于Com Visibility呢? - Jon Egerton[ClassInterface(ClassInterfaceType.AutoDual)] [ProgId("Modem_TAO_Well3DView.Parts")] public class Parts : List
{
public Parts()
{
MaxCount = 50;
}
public static int MAX_COUNT = 50;
public int GetMaxCount()
{
return 50;
}
public int MaxCount { get; set; }
}
但是什么都没有显示出来(属性、字段等)。也许你的意思是IList<Part>。 - zhigarartem