I have a C# Class Libarary which is exposed to COM. The issue is base class members are not exposed to COM.As per msdn
http://msdn2.microsoft.com/en-us/library/8877bdk6(VS.80).aspx Managed Clas hierarchies flatten out when exposed as COM objects.
Please let me know how i can resove this issue. Thanks a lot in advance
Here is the sample Application Code:
The issue is base class member properties VehicleName ,Vehicle Type are not exposed to COM
Expand|Select|Wrap|Line Numbers
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace ClassLibrary5
- {
- [Guid("99999999999A-CCCCc-ADDD-73444444E530")]
- public interface IVehicle
- {
- bool Start();
- bool Stop();
- string VehicleName { get; set; }
- string VehicleType { get; set; }
- }
- [Guid("4444444444444-1111-5555-44464445FF9")]
- [ClassInterface(ClassInterfaceType.None)]
- public abstract class Vehicle : ClassLibrary5.IVehicle
- {
- private string _VehicleName;
- private string _VehicleType;
- public string VehicleName
- {
- get
- {
- return _VehicleName;
- }
- set
- {
- _VehicleName = value;
- }
- }
- public string VehicleType
- {
- get
- {
- return _VehicleType;
- }
- set
- {
- _VehicleType = value;
- }
- }
- public abstract bool Start();
- public abstract bool Stop();
- }
- }
Derived class:
Expand|Select|Wrap|Line Numbers
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace ClassLibrary5
- {
- [Guid("00000000000-7771-8888-F8487777988")]
- public interface ICar : IVehicle
- {
- string CarType { get; set; }
- int ModelNumber { get; set; }
- bool Start();
- bool Stop();
- }
- [Guid("111111111-1234-1234-4567-C5077F131")]
- [ClassInterface(ClassInterfaceType.None)]
- public class Car : Vehicle, IVehicle, ICar
- {
- private int _ModelNumber;
- private string _CarType;
- public int ModelNumber
- {
- get
- {
- return _ModelNumber;
- }
- set
- {
- _ModelNumber = value;
- }
- }
- public string CarType
- {
- get
- {
- return _CarType;
- }
- set
- {
- _CarType = value;
- }
- }
- public override bool Start()
- {
- //Start code goes here
- return true;
- }
- public override bool Stop()
- {
- //stop code goes here
- return true;
- }
- }
- }
Thanks,