public Computation ResolveUri(TaskMaster task_master, string uri, out LibraryFailure reason) { var type = loader.ResolveUri(uri, out reason); if (reason != LibraryFailure.None || type == null) { return(null); } if (!typeof(Computation).IsAssignableFrom(type)) { throw new InvalidCastException(String.Format( "Class {0} for URI {1} from {2} is not a computation.", type, uri, UriName)); } return((Computation)Activator.CreateInstance(type, task_master)); }