Jestem nowy tester i podczas czytania starszych kod miałem dwie następujące klasy:co to jest "witryna" "komponentu" w .net?
public class TestCommon : Component
{
public void Initialize()
{
var serviceContainer = (IServiceContainer)this.GetService(typeof(TestFramework));
serviceContainer.AddService(typeof(TestCommon), this);
}
}
public class TestFramework : ISite, IServiceContainer
{
readonly Hashtable services = new Hashtable();
public TestFramework()
{
this.AddService(this);
var bedrockModuleInstance = (TestCommon)Activator.CreateInstance(typeof(TestCommon));
((TestCommon)bedrockModuleInstance).Site = this;
((TestCommon)bedrockModuleInstance).Initialize();
}
}
ja nie rozumiem, dlaczego w klasie metody TestCommon za Initialize, można nazwać getService i wrócić jakoś getService w TestFramework” jest wywoływany? Próbowałem to zrozumieć, czytając MSDN o kontenerze, komponencie i witrynie, ale nie mogłem zrozumieć idei witryny.
Aktualizacja: Czytaj realizację getService, uznał getService tego składnika acutally powrotu swojej stronie za getService, odpowiedział na moje pytanie.
protected virtual object GetService(Type service) {
ISite s = site;
return((s== null) ? null : s.GetService(service));
}
Wyobraź sobie "Witryna" jako właściciela komponentu, taką jak okno lub formularz "będący właścicielem" wizualnego komponentu wyświetlanego w tym oknie. Zobacz http://msdn.microsoft.com/en-us/library/0b1dk63b.aspx dla dalszego tła. –