1

背景情報:

このプロジェクトには Microsoft Visual C# 2010 を使用しています。クラス System.IO.DirectoryInfo を使用して、ディレクトリの一覧を取得したいと考えています。ただし、 UnauthorizedAccessException 例外をスローすると関数が失敗するため、 GetDirectories() の実装は機能しません。

DirectoryInfo クラスと同じ機能を持つ派生クラスを定義する DLL を作成したいと考えていますが、GetDirectories() をオーバーライドして、必要な機能を持たせることができます。

問題:

基本コンストラクターを呼び出そうとすると、何か間違ったことをしているに違いありません。「'object' には 1 つの引数を取るコンストラクターが含まれていません」というエラーが表示されます。

using System;
using System.IO;

namespace CompanyName.System.IO
{
    public class FlexibleDirectoryInfo : DirectoryInfo
    {
        public FlexibleDirectoryInfo(string path) : base(path) {}
        [...]

DirectoryInfo にはデフォルトのコンストラクターがなく、代わりに、私がやろうとしているように、文字列パラメーターを取る単一のコンストラクターがあります。ただし、基本コンストラクターが適切に解決されているかどうかはわかりません。

これは簡単な修正だと感じています。私が見落としていることを指摘してください。:)

ありがとう!

4

1 に答える 1

3

DirectoryInfo封印クラスです。したがって、そこから派生することはできません。MSDN から:

パブリックシールクラス DirectoryInfo : FileSystemInfo

ただし、 FileSystemInfoを継承するクラス( のスーパークラスDirectoryInfo) を作成します。ほとんどの実装を作成する必要がありますが、それが唯一の方法です。

于 2012-06-18T19:59:26.663 に答える