我遇到了一个C# 关于接口的问题,请高手来指点下
我最近在学习WCF,与到一个关于接口的问题
有这么个接口
namespace System.ServiceModel
{
public interface IDefaultCommunicationTimeouts
{
TimeSpan CloseTimeout { get; }
TimeSpan OpenTimeout { get; }
TimeSpan ReceiveTimeout { get; }
TimeSpan SendTimeout { get; }
}
}
然后它被下面的ChannelManagerBase 实现了,问题是我找来找去,都找不被实现的属性,只找到了一些可疑的属性,
namespace System.ServiceModel.Channels
{
public abstract class ChannelManagerBase : CommunicationObject, IDefaultCommunicationTimeouts
{
//其它成员省略
protected abstract TimeSpan DefaultReceiveTimeout { get; }
protected abstract TimeSpan DefaultSendTimeout { get; }
//上面两个有点可疑,像 接口里TimeSpan ReceiveTimeout { get; }
// TimeSpan SendTimeout { get; }的实现,但是名称却不一样。
//如果是的话,难实现接口属性的类,它的属性名称可以和它们接口里的属性名字不相同吗?
//请问这是怎么回 事。
}
}
我又在ChannelManagerBase的另一个继承类CommunicationObject 里查找, 找到了另外两个属性
namespace System.ServiceModel.Channels
{
public abstract class CommunicationObject : ICommunicationObject
{
//其它成员省略
protected abstract TimeSpan DefaultCloseTimeout { get; }
protected abstract TimeSpan DefaultOpenTimeout { get; }
//上面两个有点像 接口里的实现 TimeSpan CloseTimeout { get; } TimeSpan OpenTimeout { get; }
//但是名字却不一样。
}
}
请高手指点
[解决办法]
有呀,我用ILSpy查看的
[__DynamicallyInvokable]
TimeSpan IDefaultCommunicationTimeouts.CloseTimeout
{
[__DynamicallyInvokable]
get
{
return this.DefaultCloseTimeout;
}
}
*****************************************************************************
http://feiyun0112.cnblogs.com/