I'll do that for now.   I really hate these dual constructors.. I'd like to always pass the factory in, but I'm not sure I understand the codepaths enough to do that.

It would invalidate the condition that ref && factory not be null when using that constructor.
Could you add comments to the constructors and clarify the roles each URI plays?

It would be great if there were:
```
public FileResource(URI, FileResourceFactory)
public FileResource(URI, FileResourceFactory, URI)
```
Where the first calls the 2nd with a null ref.