Uri에 대한 매개 변수로 사용 된 어셈블리의 정규화 된 문자열은 XAML에서 작동하지만 코드에 사용 된 경우 오류가 표시됩니다.UriFormatException : 잘못된 URI : 잘못된 포트가 지정되었습니다.
모든 종류의 UriKind를 동일한 결과로 시도했습니다. 이 문제를 어떻게 해결할 수 있습니까?
[Test]
public void LargeImageSource_IsKnown()
{
var uri = new Uri(
"pack://application:,,,/" +
"MyAssembly.Core.Presentation.Wpf;component/" +
"Images/Delete.png", UriKind.RelativeOrAbsolute);
Assert.That(
_pickerActivityCollectionVm.DeleteActivityCommand.LargeImageSource,
Is.EqualTo(uri));
}
System.UriFormatException : Invalid URI: Invalid port specified.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString, UriKind uriKind)
토마스의 멋진 대답 가독성에 대한 내 자신의 의견을 바탕으로
UPDATE
, 나는 내 BaseTestFixture 클래스에서 다음을 사용하여 상처. 희망이 다른 사람을 도와줍니다.pack://
계획이 아직 등록되지 않은 상태에서이 코드를 실행하고 있기 때문이다
protected virtual void OnFixtureSetUp() {
// logging, other one time setup stuff...
const string scheme = "pack";
if (!UriParser.IsKnownScheme(scheme)) {
Assert.That(PackUriHelper.UriSchemePack, Is.EqualTo(scheme));
}
}
적용되지 않는 참고 참고 : 나는 기본 프로세스에 호스팅되는 WPF 창을 사용하여 동일한 문제에 직면하고있다. –