You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,93 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace Microsoft.VisualBasic.Activities
|
||||
{
|
||||
using Microsoft.VisualBasic.Activities.XamlIntegration;
|
||||
using System;
|
||||
using System.Activities;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime;
|
||||
using System.Windows.Markup;
|
||||
using System.Xaml;
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
|
||||
[ValueSerializer(typeof(VisualBasicSettingsValueSerializer))]
|
||||
[TypeConverter(typeof(VisualBasicSettingsConverter))]
|
||||
public class VisualBasicSettings
|
||||
{
|
||||
|
||||
static readonly HashSet<VisualBasicImportReference> defaultImportReferences = new HashSet<VisualBasicImportReference>()
|
||||
{
|
||||
//"mscorlib"
|
||||
new VisualBasicImportReference { Import = "System", Assembly = "mscorlib" },
|
||||
new VisualBasicImportReference { Import = "System.Collections", Assembly = "mscorlib" },
|
||||
new VisualBasicImportReference { Import = "System.Collections.Generic", Assembly = "mscorlib" },
|
||||
//"system"
|
||||
new VisualBasicImportReference { Import = "System", Assembly = "system" },
|
||||
new VisualBasicImportReference { Import = "System.Collections.Generic", Assembly = "system" },
|
||||
//"System.Activities"
|
||||
new VisualBasicImportReference { Import = "System.Activities", Assembly = "System.Activities" },
|
||||
new VisualBasicImportReference { Import = "System.Activities.Statements", Assembly = "System.Activities" },
|
||||
new VisualBasicImportReference { Import = "System.Activities.Expressions", Assembly = "System.Activities" },
|
||||
};
|
||||
|
||||
static VisualBasicSettings defaultSettings = new VisualBasicSettings(defaultImportReferences);
|
||||
|
||||
public VisualBasicSettings()
|
||||
{
|
||||
this.ImportReferences = new HashSet<VisualBasicImportReference>();
|
||||
}
|
||||
|
||||
VisualBasicSettings(HashSet<VisualBasicImportReference> importReferences)
|
||||
{
|
||||
Fx.Assert(importReferences != null, "caller must verify");
|
||||
this.ImportReferences = new HashSet<VisualBasicImportReference>(importReferences);
|
||||
}
|
||||
|
||||
public static VisualBasicSettings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultSettings;
|
||||
}
|
||||
}
|
||||
|
||||
// hide from XAML since the value serializer can't suppress yet
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public ISet<VisualBasicImportReference> ImportReferences
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
internal bool SuppressXamlSerialization
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
internal void GenerateXamlReferences(IValueSerializerContext context)
|
||||
{
|
||||
// promote settings to xmlns declarations
|
||||
INamespacePrefixLookup namespaceLookup = GetService<INamespacePrefixLookup>(context);
|
||||
foreach (VisualBasicImportReference importReference in this.ImportReferences)
|
||||
{
|
||||
importReference.GenerateXamlNamespace(namespaceLookup);
|
||||
}
|
||||
}
|
||||
|
||||
internal static T GetService<T>(ITypeDescriptorContext context) where T : class
|
||||
{
|
||||
T service = (T)context.GetService(typeof(T));
|
||||
if (service == null)
|
||||
{
|
||||
throw FxTrace.Exception.AsError(new InvalidOperationException(SR.InvalidTypeConverterUsage));
|
||||
}
|
||||
|
||||
return service;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user