dependency injection - Why does ComposeExportedValue not insert my object into the container? -
i have following line of code seems nothing @ all, no errors, nothing. object not in container's catalog:
public void initialize() { if (authenticationmodel.current.protocol.tostring() != gettype().name.replace(unittypesuffix, "")) { return; } _container.composeexportedvalue<iloginview>(new loginview()); }
the if
check because potentially have more 1 login module, , 1 specified protocol
must make it's view available in container. other dynamically loaded modules can ask login view registered. check passes , composeexportedvalue
executes, object not visible in container.
if this, see use login view, when composes test object:
public class test { [import] public iloginview loginview { get; set; } } var test = new test(); container.composeexportedvalue<iloginview>(new loginview()); container.satisfyimportsonce(test);
the documentation not detailed, think not added container because created object, , keep ownership of it. not disposed when container gets disposed etc.
if want part of container have use either attributes [export] , add assembly contains view catalog. or if don't want use attributes, can use new registrationbuilder.
Comments
Post a Comment