本文整理汇总了C#中Descriptor.SetField方法的典型用法代码示例。如果您正苦于以下问题:C# Descriptor.SetField方法的具体用法?C# Descriptor.SetField怎么用?C# Descriptor.SetField使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Descriptor
的用法示例。
在下文中一共展示了Descriptor.SetField方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateMBeanAttributeInfo
public MBeanAttributeInfo CreateMBeanAttributeInfo(PropertyInfo info)
{
Descriptor descriptor = new Descriptor();
OpenType openType = OpenType.CreateOpenType(info.PropertyType);
descriptor.SetField(OpenTypeDescriptor.Field, openType);
object[] tmp = info.GetCustomAttributes(typeof(OpenMBeanAttributeAttribute), false);
if (tmp.Length > 0)
{
OpenMBeanAttributeAttribute attr = (OpenMBeanAttributeAttribute)tmp[0];
if (attr.LegalValues != null && (attr.MinValue != null || attr.MaxValue != null))
{
throw new OpenDataException("Cannot specify both min/max values and legal values.");
}
IComparable defaultValue = (IComparable)attr.DefaultValue;
OpenInfoUtils.ValidateDefaultValue(openType, defaultValue);
descriptor.SetField(DefaultValueDescriptor.Field, defaultValue);
if (attr.LegalValues != null)
{
OpenInfoUtils.ValidateLegalValues(openType, attr.LegalValues);
descriptor.SetField(LegalValuesDescriptor.Field, attr.LegalValues);
}
else
{
OpenInfoUtils.ValidateMinMaxValue(openType, defaultValue, attr.MinValue, attr.MaxValue);
descriptor.SetField(MinValueDescriptor.Field, attr.MinValue);
descriptor.SetField(MaxValueDescriptor.Field, attr.MaxValue);
}
}
return new MBeanAttributeInfo(info.Name, InfoUtils.GetDescrition(info, info, "MBean attribute"), openType.Representation.AssemblyQualifiedName,
info.CanRead, info.CanWrite, descriptor);
}
示例2: GetDescriptorFromFieldValues
protected Descriptor GetDescriptorFromFieldValues()
{
Descriptor descriptor = new Descriptor();
if (Field != null)
{
foreach (FeatureDescriptorTypeField field in Field)
{
descriptor.SetField(field.Name, field.Value.Deserialize());
}
}
return descriptor;
}
示例3: CreateMBeanOperationInfo
public MBeanOperationInfo CreateMBeanOperationInfo(MethodInfo info)
{
Descriptor descriptor = new Descriptor();
object[] attrTmp = info.GetCustomAttributes(typeof(OpenMBeanOperationAttribute), false);
if (attrTmp.Length == 0)
{
throw new OpenDataException("Open MBean operation have to have its impact specified.");
}
OpenMBeanOperationAttribute attr = (OpenMBeanOperationAttribute)attrTmp[0];
if (attr.Impact == OperationImpact.Unknown)
{
throw new OpenDataException("Open MBean operation have to have its impact specified.");
}
OpenType openType = info.ReturnType != null ? OpenType.CreateOpenType(info.ReturnType) : SimpleType.Void;
descriptor.SetField(OpenTypeDescriptor.Field, openType);
return new MBeanOperationInfo(info.Name, InfoUtils.GetDescrition(info, info, "MBean operation"),
openType.Representation.AssemblyQualifiedName,
info.GetParameters().Select(x => CreateMBeanParameterInfo(x)), attr.Impact,
descriptor);
}
示例4: ProxyBean
public ProxyBean(MBeanInfo originalBeanInfo, ObjectName originalName, OpenTypeCache typeCache)
{
_originalName = originalName;
_typeCache = typeCache;
List<MBeanAttributeInfo> attributes = new List<MBeanAttributeInfo>();
List<MBeanOperationInfo> operations = new List<MBeanOperationInfo>();
List<MBeanConstructorInfo> constructors = new List<MBeanConstructorInfo>();
foreach (MBeanAttributeInfo attributeInfo in originalBeanInfo.Attributes)
{
if (attributeInfo.Readable)
{
Type attributeType = Type.GetType(attributeInfo.Type, true);
OpenType mappedType = _typeCache.MapType(attributeType);
if (mappedType != null)
{
Descriptor descriptor = new Descriptor(); //TODO: Copty fields
descriptor.SetField(OpenTypeDescriptor.Field, mappedType);
MBeanAttributeInfo openInfo = new MBeanAttributeInfo(
attributeInfo.Name, attributeInfo.Description, mappedType.Representation.AssemblyQualifiedName,
attributeInfo.Readable, false, descriptor);
attributes.Add(openInfo);
_attributeTypes[attributeInfo.Name] = new OpenAndClrType(attributeType, mappedType);
}
}
}
foreach (MBeanOperationInfo operationInfo in originalBeanInfo.Operations)
{
Type returnType = Type.GetType(operationInfo.ReturnType, true);
OpenType mappedReturnType = _typeCache.MapType(returnType);
if (mappedReturnType == null)
{
continue;
}
Descriptor descriptor = new Descriptor();
descriptor.SetField(OpenTypeDescriptor.Field, mappedReturnType);
bool success = true;
List<MBeanParameterInfo> openParameters = new List<MBeanParameterInfo>();
foreach (MBeanParameterInfo parameterInfo in operationInfo.Signature)
{
OpenType mappedParamType = _typeCache.MapType(Type.GetType(parameterInfo.Type, true));
if (mappedParamType == null || mappedParamType.Kind != OpenTypeKind.SimpleType)
{
success = false;
break;
}
Descriptor paramDescriptor = new Descriptor(); //TODO: Copy fields
paramDescriptor.SetField(OpenTypeDescriptor.Field, mappedParamType);
openParameters.Add(new MBeanParameterInfo(parameterInfo.Name, parameterInfo.Description,
mappedParamType.Representation.AssemblyQualifiedName,
paramDescriptor));
}
if (!success)
{
continue;
}
MBeanOperationInfo openInfo = new MBeanOperationInfo(operationInfo.Name, operationInfo.Description,
mappedReturnType.Representation.AssemblyQualifiedName,
openParameters, operationInfo.Impact, descriptor);
operations.Add(openInfo);
_operationReturnTypes[operationInfo.Name] = new OpenAndClrType(returnType, mappedReturnType);
}
_info = new MBeanInfo(originalBeanInfo.ClassName, originalBeanInfo.Description,
attributes, constructors, operations, originalBeanInfo.Notifications);
}