Share via


SfcDependencyEngine.Discover Method

Definition

Perform complete dependency relation discovery. Start with asking each DomainContext to do what it can, then each DomainContext Type and finally resort to asking each node about its own relationships.

Currently we only ask for bulk per DomainContext once, then simply do individual discovery until all nodes have had a discovery pass.

For v2, we would introduce bulk DomainContext Type discovery after doing the DomainContext discovery, and maybe even repeat bulk discovery until no new nodes are contributed from it, then resort to individual discovery.

Also we may need to give bulk handlers an iterator, unless we want to rely on handing them acess to the DepEngine itself as a sink for adding new nodes discovered as well as traversing directly on the nodes. This is okay as long as we assume (or know) that the bulk handlers themselves just make a temp collection to hold the nodes before making the query. They have to be done walking the graph before they start adding nodes. Just like any other iterator use, if they try to violate this order and add nodes before they are finished Next'ing on the iterator, the iterator will throw (which is what we want to happen).

public void Discover ();
member this.Discover : unit -> unit
Public Sub Discover ()

Applies to