为什么FileSystemInfo不声明GetAccessControl方法?

我主要对这背后的devise决定感兴趣。

背景资料:
FileSystemInfo是FileInfo和DirectoryInfo的基类。
这两个类都实现了GetAccessControl() ,分别返回一个FileSecurity或DirectorySecurity对象。
FileSecurityDirectorySecurity都是从FileSystemSecurity派生而来的 – 同样是唯一的类。
FileSecurityDirectorySecurity都没有声明自己的方法或属性 – 除了构造函数。

但是, FileSystemInfo还不包含public FileSystemSecurity GetAccessControl()方法。

问题
任何人都可以阐明为什么FileSystemInfo不包含这种方法?

示例代码

 public static void GrantFullControlToBuiltinUsers(this FileSystemInfo fileSystemInfo) { FileSystemSecurity acFile; if(fileSystemInfo is DirectoryInfo) acFile = ((DirectoryInfo) fileSystemInfo).GetAccessControl(); else acFile = ((FileInfo)fileSystemInfo).GetAccessControl(); acFile.AddAccessRule( new FileSystemAccessRule(GetAccountNameBuiltinUsers(), FileSystemRights.FullControl, AccessControlType.Allow)); if (fileSystemInfo is DirectoryInfo) ((DirectoryInfo)fileSystemInfo).SetAccessControl((DirectorySecurity)acFile); else ((FileInfo)fileSystemInfo).SetAccessControl((FileSecurity)acFile); } 

这些代码与所有(不必要的)代码都非常漂亮,我想知道为什么图书馆是这样devise的。

我的猜测是,他们希望两个GetAccessControl方法分别返回适当的具体类型 – FileSecurity和DirectorySecurity。 如果他们从一个通用的GetAccessControl()方法继承,他们将被迫返回FileSystemSecurity,用户将不得不手动强制转换。

这主要是一个美学选择。