【发布时间】:2014-03-26 17:04:50
【问题描述】:
不确定这里出了什么问题,但我正在尝试在我创建的界面中使用枚举。
当我尝试实现接口时出现错误
可访问性不一致:属性类型“System.Collections.Generic.IList”的可访问性低于属性“BusinessEntities.ICloneMessage.AgentAddresses”
枚举
namespace BusinessEntities
{
public class AddressTypeValues
{
[DataContract(Name = "AddressType")]
public enum AddressType
{
[EnumMember(Value = "Home")]
Home,
[EnumMember(Value = "Mailing")]
Mailing,
[EnumMember(Value = "Location")]
Location,
[EnumMember(Value = "Other")]
Other
}
}
}
界面
namespace BusinessEntities
{
public interface IAgentAddress
{
AddressTypeValues.AddressType AddressType { get; set; }
String? Street1 { get; set; }
String? Street2 { get; set; }
String? Street3 { get; set; }
String? City { get; set; }
String? State { get; set; }
String? ZipCode { get; set; }
}
}
使用 AddresType 的类
namespace BusinessEntities
{
[DataContract]
public class CloneMessage : ICloneMessage
{
[DataMember]
public AgentTransmission AgentInformation { get; set; }
[DataMember]
public IList<AgentAddress> AgentAddresses { get; set; }
[DataMember]
public IList<RelationshipCode> RelationshipCodes { get; set; }
[DataMember]
public string? ErrorMessages { get; set; }
public CloneMessage(){}
}
}
namespace BusinessEntities
{
[DataContract]
public class AgentAddress : IAgentAddress
{
[DataMember]
public AddressTypeValues.AddressType AddressType { get; set; }
[DataMember]
public string Street1 { get; set; }
[DataMember]
public string Street2 { get; set; }
[DataMember]
public string Street3 { get; set; }
[DataMember]
public string City { get; set; }
[DataMember]
public string State { get; set; }
[DataMember]
public string ZipCode { get; set; }
}
}
【问题讨论】:
-
你的班级
AgentAddress可能是internal,把它设为公共班级 -
如果我这样做,我被告知我不能在
string接口中拥有可为空的string属性。 -
String已经是一个可为空的类。你不能有Nullable<String>。去掉问号。 -
@Neal,那是完全不同的错误,
string已经是可空的,它是一个引用类型,删除?和String?。Nullable<T>用于值类型,不是引用类型