我有以下示例代码:
static class Test
{
public WordBase FindWord( String word )
{
return (WordBase)Data.Vocabulary.Where( a => a.Name == word ).FirstOrDefault();
}
}
static class Data
{
public List<WordBase> Vocabulary = new List<WordBase>();
}
class WordBase
{
public UInt32 Id { get; protected set; }
public String Name { get; protected set; }
public WordBase( UInt32 id, String name )
{
Id = id;
Name = name;
}
}
我正在寻找的是将Data
类移动到将通过反射加载的外部程序集中。这样做的原因是我正在编写一个基于文本的冒险游戏创建器,它允许将多个情节链接在一起,其中每个程序集将包含每个情节的游戏数据和逻辑。
我遇到的问题是该FindWord
方法将失败,因为Data.Vocabulary
当前项目中不存在;请记住,它已被移出到外部加载的程序集中,因此不会有任何强类型引用。
我认为我需要通过接口或抽象类创建某种契约,以便FindWord
方法可以绑定到Data.Vocabulary
属性。
这样做的推荐方法是什么?