|
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System;
using System.Configuration;
public partial class ExtensionElement : ConfigurationElement
{
string typeName;
public ExtensionElement()
{
}
public ExtensionElement(string name)
: this()
{
if (String.IsNullOrEmpty(name))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name");
}
this.Name = name;
}
public ExtensionElement(string name, string type)
: this(name)
{
if (String.IsNullOrEmpty(type))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("type");
}
this.Type = type;
}
[ConfigurationProperty(ConfigurationStrings.Name, Options = ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey)]
[StringValidator(MinLength = 1)]
public string Name
{
get { return (string)base[ConfigurationStrings.Name]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStrings.Name] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.Type, Options = ConfigurationPropertyOptions.IsRequired)]
[StringValidator(MinLength = 1)]
public string Type
{
get { return (string)base[ConfigurationStrings.Type]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = string.Empty;
}
base[ConfigurationStrings.Type] = value;
}
}
internal string TypeName
{
get
{
if (string.IsNullOrEmpty(this.typeName))
{
this.typeName = GetTypeName(this.Type);
}
return this.typeName;
}
}
internal static string GetTypeName(string fullyQualifiedName)
{
string typeName = fullyQualifiedName.Split(',')[0];
return typeName.Trim();
}
}
}
|