1 Results for 'Blend 2'

  1. 2009.04.04 블렌드의 희한한 이름 제한

요즘 실버라이트 3 나와서 바쁘게 공부하시는 분들이 많을 거에요. 저도 그러고 싶은데 아직 하고 있는 일이 많아서 거의 손을 못대고 있네요. 즉, 저처럼 현재 실버라이트를 업무로 하는 분은 실버라이트 3가 릴리즈될 때까지는 좋든 싫든 실버라이트 2와 블렌드 2를 써야 해요. 한 가지 좋은 소식이 있어요. 실버라이트 3가 엄청나게 많은 기능들을 추가했지만 그 중에 일부는 비트맵 이펙트처럼 실버라이트 2에서는 구현이 불가능한 것도 있지만 비헤이비어Behavior처럼 실버라이트 2에서도 비교적 간단하게 구현할 수 있는 것도 있다는거죠!

네, 저는 최근 앞으로 5개월 이상 사용할 실버라이트 2를 위해 실버라이트 3 코드에서 Behavior와 Action 그리고 Trigger를 옮기고 있어요. 이 기능들은 단순히 AttachedProperty를 비롯한 실버라이트 2에서 지원하는 몇몇 클래스로만 이루어져 있거든요.

그런데 이상하게 새로 만든 Trigger클래스가 실행도 잘되고 비주얼 스튜디오의 디자이너에서도 잘 보이는데 유독 블렌드(2)에서만 에러 화면이 나오는거에요. 아무리 Behavior와 Trigger가 좋다고 해도 블렌드와 충돌하면 의미가 없겠죠. 그래서 원인을 격리시키기 위해 새 솔루션을 만들고 클래스를 따로 분리해서 테스트하다가 재밌는 사실을 발견했어요.


바로 프로젝트의 이름 즉, 어셈블리의 이름이 Microsoft.Expression로 시작할 경우 블렌드가 그 어셈블리에 있는 클래스를 못 찾아온다는 사실이에요.

그런데 더 재밌는 건 어셈블리의 이름이 Microsoft.Expression까지만 썼을 경우는 동작하고요, 당연히 다른 이름을 쓸 때도 잘 동작한다는 거에요. 오직 Microsoft.Expression.XXXXXX라는 이름을 가진 어셈블리만 이 문제가 발생해요. 그리고 네임스페이스의 이름은 이 현상에 어떤 영향도 주지 않고요.

…후우… 이것 때문에 몇 시간을 썼는지…

그래서 결론이 뭐냐면요, 혹시 마이크로소프트에서 나온 라이브러리를 베껴쓸 때에는(…) 적어도 어셈블리 이름은 바꿔서 쓰라는거죠. 도둑질도 배워야 한다나요. ㅎㅎ

저작자 표시 동일 조건 변경 허락
신고
Posted by gongdo


티스토리 툴바