Witam.
Swego czasu robiłem projekt który miał w założeniu pluginy na dllkach.
Mam sobie Klasę bazową - BaseObject który jest używany do kompilacji programu głównego.
Oraz mam klasę ExampleRobot która dziedziczy z BaseObject więc również jest razem z nią kompilowana do DLLki.
Kiedy próbuje sprawdzić czy dana klasa jest dziedziczy z BaseObject dostaje taki komunikat:
BaseObject The type 'RobotSIM.BaseObject' exists in both 'RobotSIM.exe' and 'ExampleRobot.dll'
otrzymuje go w takim kawałku kodu:
public void LoadPlugin(string fname)
{
Assembly loadedAssembly = Assembly.LoadFrom(fname);
Type[] loadedTypes = loadedAssembly.GetTypes();
foreach(Type type in loadedTypes)
{
if (type.IsSubclassOf(typeof(RobotSIM.BaseObject)) && type.Name != "BaseObject" && type.Name != "Mesh")
{
pluginClasses.Add(type);
object temp = Activator.CreateInstance(type);
pluginClassesNames.Add(((BaseObject)temp).ClassName);
}
}
}
Kompilator jednak przechodzi dalej nie wyrzucając błędu ale przez to nie działa.
Nie da się skompilować Dllki bez tego obiektu bazowego ani też programu bo obie rzeczy tego używają, czy jest na to jakiś sposób? Kompilacja obiektu bazowego do DLLki pomoże?