문자열 매개 변수 중 하나를 빈 문자열로 허용하려면 어떻게합니까? 나도 아무것도 또는 단일 공간을하려고하지 않을 때Castle Windsor : 매개 변수 값을 빈 문자열로 설정
나는 (이름 변경)이 오류가 발생합니다 :
은 'test.User'(MyNamespace.MyObject)에 대한 비 선택적인 종속성을 확인할 수 없습니다. 매개 변수 'userName'type 'System.String'
문자열 매개 변수 중 하나를 빈 문자열로 허용하려면 어떻게합니까? 나도 아무것도 또는 단일 공간을하려고하지 않을 때Castle Windsor : 매개 변수 값을 빈 문자열로 설정
나는 (이름 변경)이 오류가 발생합니다 :
은 'test.User'(MyNamespace.MyObject)에 대한 비 선택적인 종속성을 확인할 수 없습니다. 매개 변수 'userName'type 'System.String'
공백으로 두려는 매개 변수를 사용하지 않는 생성자를 추가하는 것이 훨씬 쉽고 가능성이 더 많습니다. 은입니다.
container.Register(
Component.For<Foo>()
.DependsOn(new
{
someString = string.Empty
}));
그러나 우선 무엇을 빈 문자열로 종속성을 설정 하시겠습니까? 나 한테 해킹하는 것 같은 기분이야.
이미 기본값 (null 또는 비어 있지 않은 다른 문자열)이 있으면?
<component id="emptyString" type="System.String, mscorlib" />
다음 매개 변수 노드에서 사용 : 하나 개의 솔루션 구성 요소를 만드는 것입니다
<parameters> <someStringParameter>${emptyString}</someStringParameter> </parameters>
을하지만 같은이 간단한 방법이있을한다고 보인다.
작동하지 않습니다. 'string'을 컴포넌트로 사용할 수 없습니다. 그것은 이해가되지 않으며 윈저는 당신을 내버려 두지 않을 것입니다. –
왜 작동하지 않는다고합니까? 나는 게시하기 전에 그것을했고, 생성자의 관련 매개 변수 값은 실제로 빈 문자열이었다. 버전에 따라 다릅니 까? Castle.Core 1.2.0.0, Castle.MicroKernel 2.1.0.0, Castle Windsor 2.1.0.0을 사용 중입니다. 더 중요한 것은, 그것이 이해가되지 않는다면 더 나은 해결책은 무엇일까요? 감사합니다. – phoog
나는 왜 내가 비어있는 채로 남기고 싶은 매개 변수를 제외하는 또 다른 생성자를 추가 할 수 있다는 것을 깨닫기 위해 이것을하기를 원했던 이유를 타이핑하고 있었다. 해킹에 대해 나를 부른 것에 대해 +1했다. –
예. 매개 변수를 명시 적으로 제외하는 추가 .ctor가 일반적으로 선호되는 솔루션입니다. –