次のクラスとファクトリがあります(不要なコードは省略)。IManageableEntryDao の 3 つの個別の実装と、createDao メソッドでアクセスされる文字列/型マップがあります。
「ManageableEntry.IManageableEntryDao' には '1' 型引数が必要です」というコンパイル エラーが発生します。この問題を解決するためのベストプラクティスは何ですか? どうにかして何が何であるかを特定したいですか?または、代替ソリューションはありますか?
public interface IManageableEntryDao<T> where T : IManageableEntry {
T findById(long id);
T findByName(string name);
int findUnapprovedCount();
List<T> findUnapproved(ManageableEntryCriteria criteria);
long insert(T manageableEntry);
bool update(T manageableEntry);
bool delete(T manageableEntry);
}
public class ManageableEntryDaoFactory {
public IManageableEntryDao createDao(string manageableEntryType) {
manageableEntryType = manageableEntryType.ToLower();
Type type = daoTypes[manageableEntryType];
if (type != null) {
object dao = Activator.CreateInstance(type);
return dao as IManageableEntryDao;
}
throw new NotImplementedException("Failed to find DAO for type: " + manageableEntryType);
}
}