2013-08-28 1 views
0

나는 다음과 같은 내용 주어진 XAML 파일 내용이 제대로

<Canvas xmlns:seic="clr-namespace:NameSpace1;assembly=Assembly1" 
    xmlns:seidm="clr-namespace:NameSpace2;assembly=Assembly2" 
    xmlns:seogptpi="clr-namespace:NameSpace3;assembly=Assembly3" 
    xmlns:seogdc="clr-NameSpace4;assembly=Assembly4" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Name="_99abfc59e3ad417d98db31591a6f9dd7" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    Canvas.Left="0" Canvas.Top="0" Tag="TemplatePart" Width="800" Height="600" 
    seogdc:FrameworkElementExtensions.Id="Canvas" 
    seogdc:FrameworkElementExtensions.ShowRotateCue="False" 
    seogdc:FrameworkElementExtensions.ShowPositionCue="False" 
    seogdc:FrameworkElementExtensions.IsSizeSerializable="False" 
    seogdc:FrameworkElementExtensions.IsTargetDimensions="False"> 
<Canvas x:Name="Canvas1" 
     Canvas.Left="0"  
     Canvas.Top="0" 
     Tag="TemplatePart" 
     Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType={x:Type Canvas}}, Path=Width}" 
     Height="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType={x:Type Canvas}}, Path=Height}" 
     Background="{x:Static Brushes.Black}" 
     seogdc:FrameworkElementExtensions.Id="Canvas" 
     seogdc:FrameworkElementExtensions.ShowRotateCue="False" 
     seogdc:FrameworkElementExtensions.ShowPositionCue="False" 
     seogdc:FrameworkElementExtensions.IsTargetDimensions="False" 
     seogptpi:TemplateManager.IsMainPart="True" 
     seogptpi:TemplateManager.TemplateName="Canvas"> 
<seic:DomainParameter.DomainModel> 
    <seidm:StatelessDomainModel> 
    <seidm:StatelessDomainModel.DomainFeatures> 
     <seidm:ColorFeature LabelFillTransparency="0"> 
     <seidm:ColorFeature.FontBlinkSetting> 
      <seidm:ColorTransparancy Transparancy="0" /> 
     </seidm:ColorFeature.FontBlinkSetting> 
     <seidm:ColorFeature.LineBlinkSetting> 
      <seidm:ColorTransparancy Transparancy="0" /> 
     </seidm:ColorFeature.LineBlinkSetting> 
     <seidm:ColorFeature.FillBlinkSetting> 
      <seidm:ColorTransparancy Transparancy="0" /> 
     </seidm:ColorFeature.FillBlinkSetting> 
     </seidm:ColorFeature> 
    </seidm:StatelessDomainModel.DomainFeatures> 
    </seidm:StatelessDomainModel> 
</seic:DomainParameter.DomainModel> 
    </Canvas> 
</Canvas> 

이있는 XamlReader를 사용하여 XML 파일을 구문 분석하려고하지만 단순히 '알 수없는 멤버를 설정할 수 없습니다'(AN XamlParseException를 throw 구문 분석하지 Namespace2.ColorFeature .LabelFillTransparency '.'줄 번호 '13'및 줄 위치 '31'). 위에서 언급 한 4 개의 어셈블리에 대한 참조가 추가되었습니다. 개인 정보 보호를 위해 정확한 어셈블리 이름을 제공하지 않기로 결정했습니다. 누군가 무슨 일이 일어날 지 말해 줄 수 있습니까?

미리 감사드립니다.

+0

나는 바보 같은 질문을했을지도 모른다. 나는 꽤 언젠가이 문제에 붙어있다. 나는 정말로 누군가가 나에게 도움이되기를 희망한다. – Anee

답변

0

XamlReader.Parse 방법에 맞춤 ParserContext을 제공해야합니다. XamlParser이 XAML에서 참조되는 형식을 찾으려면 ParserContext.XamlTypeMapper 속성을 할당해야합니다. 이 줄의 어떤 것 :

var context = new ParserContext(); 
context.XamlTypeMapper = new XamlTypeMapper(
    new[] { 
    Assembly.GetExecutingAssembly().GetName().Name, 
    "Assembly1", 
    "Assembly2", 
    "Assembly3", 
    "Assembly4", 
    } 
); 
var element = (FrameworkElement) XamlReader.Parse(xaml, context); 
+0

나는 당신이 나에게 물어 봤던 솔루션을 시도했지만 여전히 xaml에 언급 된 유형을 찾을 수 없었다. XamlTypeMapper를 사용하여 어셈블리 경로를 지정하려고했습니다. 하지만 여전히 운이 없다 : (나는 당신의 회신을 보았을 때 매우 희망적 이었지만, 불행한 경우에도 이것이 작동하지 않는다. – Anee

+0

@Anee : XAML에 오류가있는 경우를 제외하고, 적절한' ParserContext'. 당신이 얻는 에러는 누락 된 타입이나 알 수없는 멤버가 아니라 문제 해결에 도움이 될 수 있습니다. 'ColorFeature'를 인스턴스화하고 코드에서'LabelFillTransparency'에 접근 할 수 있습니까? –

+0

안녕하세요, 저는 만들 수 있어요. 위에서 언급 한 코드를 완벽하게 아무 문제없이 언급 한 형식입니다.하지만 위의 XAML을로드하려고하면 작동하지 않습니다. – Anee