Я изучаю шаблон проектирования фабрики и пытаюсь реализовать его в своем проекте. У меня есть пространство имен с базовым классом и системой подклассов с разными значениями членов. Моя программа хочет прочитать загруженный пользователем файл и в зависимости от его имени создать экземпляр соответствующего подкласса.
Я пробовал сделать это, передав имя файла в виде строки моему фабричному методу и создание экземпляра желаемого подкласса с использованием: Activator.CreateInstance
Однако при отладке я получаю ArgumentNullException
, и я не совсем уверен, как лучше всего достичь своей цели. Вот мой код:
Если пользователь, например, загружает текстовый файл, я хочу создать экземпляр моего класса TextFile
.
public class GameMaker
{
public BaseFile make(String fileType)
{
var gameVersion = Activator.CreateInstance(null, fileType);
return gameVersion;
}
}
public abstract class BaseFile
{
}
class Textfile: BaseFile
{
}