AppDi.AppDriver.TryGetMember C# (CSharp) Method

TryGetMember() public method

This method is in charge of dynamic binding of properties/methods in this Dynamic Object In specific for this class, it is in charge of creating instances of Page Objects that are dinamically registered with the AppDriver during the initial driver creation (using AppDriver.Factory().Register<> method)
public TryGetMember ( GetMemberBinder binder, object &result ) : bool
binder System.Dynamic.GetMemberBinder Information about the member we are trying to bing
result object Newly created PageObject
return bool
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            Type pageType;
            bool isPageRegistered = _pageObjects.TryGetValue(binder.Name, out pageType);

            if (isPageRegistered)
            {
                //this needs to be extracted out into it's own method that can be replaced by users if desired
                var createdPage = (PageObject)Activator.CreateInstance(pageType);
                createdPage.WebDriver = this.WebDriver.Value;
                createdPage.Url = this.BaseUrl;
                //TO DO: Make wait timeout configurable
                createdPage.Wait = new WebDriverWait(this.WebDriver.Value, new TimeSpan(0,0,10));
                PageFactory.InitElements(this.WebDriver.Value, createdPage);
                result = createdPage;
                return isPageRegistered;
            }
            else
            {
                return base.TryGetMember(binder, out result);
            }
        }