В недавнем вопросе о переполнении стека я спросил, как я могу проанализировать имя файла для дополнительной метаинформации о файле.
После того, как я справился с этой проблемой, я решил, что может захотеть создать новый тип объекта для хранения метаданных и исходного файла. Я думал, что могу сделать что-то вроде этого:
class BackupFileInfo : FileInfo, IEquatable<BackupFileInfo>
{
//Properties and Methods here
}
Идея заключалась бы в том, что я сохранил исходный объект FileInfo
, добавляя метаинформацию в свойства объекта, который реализует FileInfo
, например IsMainBackup
.
Однако FileInfo
запечатан, что означает, что другие классы не могут наследовать его.
Вместо этого у меня получилось следующее:
class BackupFileInfo : IEquatable<BackupFileInfo>
{
public bool IsMainBackup { get; set; }
public int ImageNumber { get; set; }
public int IncrementNumber { get; set; }
public FileInfo FileInfo { get; set; }
//public BackupFileInfo() //constructor here
public bool Equals(BackupFileInfo other)
{
return (this.FileInfo.Name == other.FileInfo.Name
&& this.FileInfo.Length == other.FileInfo.Length);
}
}
Я не очень волнуюсь об этом решении, потому что вместо того, чтобы использовать BackupFileInfo.Length
, мне придется использовать BackupFileInfo.FileInfo.Length
. Возможно, это уже лучшая практика, но что-то не так.
Есть ли лучший способ справиться с этой проблемой?