Я работаю над приложением Windows Phone 7, которое использует Silverlight. Я хочу создать новый экземпляр класса с строкой, содержащей имя правильного класса, который я хотел бы создать. Ниже приведен снипп кода, на который я ссылаюсь, и я пытаюсь использовать его для создания нового экземпляра. Я знаю из отладки, что serviceClass содержит правильную строку, и если я добавлю к ней «.cs», теперь она будет напрямую соответствовать одному из классов, который у меня есть, поэтому почему он не создается?Создание экземпляра класса в C# из строки
WebViewService foundService; //From above
....
....
services.TryGetValue(mode, out foundService); //Find service
if (foundService == null)
{
string serviceClass;
serviceRegistry.TryGetValue(mode, out serviceClass); //Find serviceClass
if (serviceClass != null) //create new web service if one is found
{
try
{
//TODO: This is not working properly, should create an instance of some child class of WebViewService
foundService = (WebViewService)System.Activator.CreateInstance(Type.GetType(serviceClass+".cs"));
services.Add(mode, foundService);
}
catch
{
//But instead it always ends up here with ArgumentNullExeption
}
}
}
return foundService;
}
Любая помощь вообще или любые предложения были бы весьма признательны. Спасибо за ваше время!
Yup, я только что ошибался. Вы можете легко найти, какой тип вашего класса, для этого примера я использовал typeof (ScanWebViewService) .FullName – methodMan