저는 Silverlight에 익숙하지 않습니다. 원격 서비스를 제공하는 하나의 웹 프로젝트 (webApp)와 이러한 서비스를 사용하는 두 개의 클라이언트 응용 프로그램 (클라이언트 -1 및 클라이언트 -2)이있는 솔루션이 있습니다.두 Silverlight 클라이언트 응용 프로그램에서 사용자 정의 컨트롤을 다시 사용하는 방법은 무엇입니까?
나는 client-1에서 webApp에서 검색된 객체를보고 편집하는 복잡한 사용자 컨트롤을 만들었으므로이 컨트롤을 client-2에서 다시 사용하고 싶습니다.
클라이언트 응용 프로그램에서 서비스를 참조 할 때 유형이 "로컬 유형"입니다. 예를 들어, webApp에 정의 된 MyClass는 client-1 앱에서 client-1.MyClass가됩니다. client-2 앱에서 정확히 동일한 객체 (참조)를 사용하면 client-2.MyClass 유형이됩니다.
내 컨트롤을 호스팅 할 라이브러리를 만들면 웹 서비스에 대한 참조를 추가해야합니다. 세 번째 유형 인 lib.MyClass가 생깁니다. 우리 모두는 client-1.MyClass, client-2.MyClass 및 lib.MyClass가 모두 web.MyClass에서 생성 된 클래스와 정확히 같지만이 문제를 해결할 방법을 찾을 수 없다는 것을 알고 있습니다.
나는 현재 각 클라이언트 응용 프로그램에서 사용자 컨트롤의 소스 코드를 공유하고 내가 내 사용자 제어 코드 파일에서이 작업을 수행 할 수 있습니다 각 프로젝트에 정의 프리 프로세서를 가지고 찾고 있어요:
#if CLIENT-1
using Client-1.WebAppServiceReference
#end if
#if CLIENT-2
using Client-2.WebAppServiceReference
#end if
그런 다음 MyClass 형식을 사용하는 메서드는 각 클라이언트 응용 프로그램에서 올바른 "local-type"을 사용하고 있습니다. 하지만 xaml에 사전 처리기 기능이 없기 때문에 문제가 발생하고 거기에 응용 프로그램의 네임 스페이스에 대한 참조가 있어야 조건부가 될 수 있습니다.
silverlight 프로젝트에서 컨트롤을 다시 사용하는 쉬운 방법이 있습니까? 각 프로젝트에이 컨트롤을위한 소스 파일의 사본 두 개를 가질 방법이 없습니다 !!
감사합니다.
감사합니다. @McGarnagle. 나는 당신의 제안을 들여다 보려고 노력하고 있는데, RIA 클래스 라이브러리를 추가하려고 할 때 새로운 프로젝트 템플릿에서 "WCF RIA Services Class Library"를 찾지 못했습니다. "WCF Service Library"가 나타납니다. 그들이 이름이 변경 되었다면 이것들이 같은지 알고 있습니까? VisualStudio 2013을 사용하고 있습니다. – FrankTKO
@FrankTKO 그들은 동일하지 않습니다. RIA 프로젝트 템플릿은 "Silverlight"섹션 아래에 있어야합니다. – McGarnagle
@McGarnagle 도와주세요. 시간을내어 주셔서 감사합니다. 왜 RIA 라이브러리를 만들 수 없는지 잘 모르겠습니다. (새 프로젝트 템플릿에서 찾을 수 없습니다). 필자는 휴대용 라이브러리를 살펴볼 것입니다. 매우 우아하지는 않지만 전 프로세서 정의 솔루션을 사용하여 여기로 이동해야했습니다. 하지만 이제는이 일이 당신 덕분에 가능하다는 것을 알았습니다! – FrankTKO