I_Jemin

Add chat UI

Showing 168 changed files with 26056 additions and 82 deletions
......@@ -72,7 +72,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
......@@ -110,8 +110,8 @@ MonoBehaviour:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
......
......@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.4465934, g: 0.49642956, b: 0.57482487, a: 1}
m_IndirectSpecularColor: {r: 0.3731316, g: 0.38074896, b: 0.3587254, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
......@@ -113,71 +113,350 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &201183162
--- !u!1 &1740271
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 201183164}
- component: {fileID: 201183163}
m_Layer: 0
m_Name: Directional Light
- component: {fileID: 1740272}
- component: {fileID: 1740275}
- component: {fileID: 1740274}
- component: {fileID: 1740273}
- component: {fileID: 1740276}
m_Layer: 5
m_Name: InputField
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &201183163
Light:
--- !u!224 &1740272
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1740271}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1934488918}
- {fileID: 1003989032}
m_Father: {fileID: 351038155}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -151.3}
m_SizeDelta: {x: 0, y: -302.7}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1740273
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 201183162}
m_GameObject: {fileID: 1740271}
m_Enabled: 1
serializedVersion: 8
m_EditorHideFlags: 0
m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1740274}
m_TextComponent: {fileID: 1003989033}
m_Placeholder: {fileID: 1934488919}
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 0
m_HideMobileInput: 0
m_CharacterValidation: 0
m_CharacterLimit: 0
m_OnEndEdit:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text:
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
--- !u!114 &1740274
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1740271}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &201183164
Transform:
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1740275
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1740271}
--- !u!114 &1740276
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1740271}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d74e03325f4c74af5986ac0df47e31a3, type: 3}
m_Name:
m_EditorClassIdentifier:
chat: {fileID: 2036355376}
inputField: {fileID: 1740273}
--- !u!1 &257132851
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 257132852}
- component: {fileID: 257132855}
- component: {fileID: 257132854}
- component: {fileID: 257132853}
m_Layer: 5
m_Name: Leave
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &257132852
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 257132851}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.9999966, y: 0.9999966, z: 0.9999966}
m_Children:
- {fileID: 317275954}
m_Father: {fileID: 1372740361}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &257132853
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 257132851}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 257132854}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2036355376}
m_MethodName: Leave
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &257132854
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 201183162}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_GameObject: {fileID: 257132851}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &257132855
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 257132851}
--- !u!1 &317275953
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 317275954}
- component: {fileID: 317275956}
- component: {fileID: 317275955}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &317275954
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 317275953}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
m_Father: {fileID: 257132852}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &317275955
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 317275953}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Leave
--- !u!222 &317275956
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 317275953}
--- !u!1 &351038151
GameObject:
m_ObjectHideFlags: 0
......@@ -223,12 +502,12 @@ MonoBehaviour:
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ReferenceResolution: {x: 640, y: 360}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_MatchWidthOrHeight: 1
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
......@@ -263,11 +542,12 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1310784055}
- {fileID: 1443135693}
- {fileID: 1763030733}
- {fileID: 650336558}
- {fileID: 1740272}
- {fileID: 1372740361}
m_Father: {fileID: 0}
m_RootOrder: 2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
......@@ -303,13 +583,13 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1464550524}
m_Father: {fileID: 351038155}
m_RootOrder: 2
m_Father: {fileID: 1372740361}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 181, y: -121}
m_SizeDelta: {x: 160, y: 30}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &650336559
MonoBehaviour:
......@@ -396,6 +676,80 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650336557}
--- !u!1 &1003989031
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1003989032}
- component: {fileID: 1003989034}
- component: {fileID: 1003989033}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1003989032
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1003989031}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1740272}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1003989033
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1003989031}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &1003989034
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1003989031}
--- !u!1 &1297907495
GameObject:
m_ObjectHideFlags: 0
......@@ -456,8 +810,76 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1310784054
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1310784055}
- component: {fileID: 1310784057}
- component: {fileID: 1310784056}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1310784055
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1310784054}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 351038155}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1310784056
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1310784054}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.6275863, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1310784057
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1310784054}
--- !u!1 &1350433203
GameObject:
m_ObjectHideFlags: 0
......@@ -525,13 +947,107 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Button
m_Text: Create Room
--- !u!222 &1350433206
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1350433203}
--- !u!1 &1372740360
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1372740361}
- component: {fileID: 1372740364}
- component: {fileID: 1372740363}
- component: {fileID: 1372740362}
m_Layer: 5
m_Name: Menu
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1372740361
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1372740360}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1763030733}
- {fileID: 650336558}
- {fileID: 257132852}
m_Father: {fileID: 351038155}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000030517578, y: 28.674995}
m_SizeDelta: {x: 196.79999, y: -57.35}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &1372740362
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1372740360}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
--- !u!114 &1372740363
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1372740360}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1372740364
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1372740360}
--- !u!1 &1443135692
GameObject:
m_ObjectHideFlags: 0
......@@ -544,7 +1060,7 @@ GameObject:
- component: {fileID: 1443135695}
- component: {fileID: 1443135694}
m_Layer: 5
m_Name: Panel
m_Name: Comments Holder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -561,12 +1077,12 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 351038155}
m_RootOrder: 0
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 55.577103}
m_SizeDelta: {x: 0, y: -111.2}
m_AnchoredPosition: {x: 0, y: 28.675}
m_SizeDelta: {x: 0, y: -57.35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1443135694
MonoBehaviour:
......@@ -690,7 +1206,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Button
m_Text: Join Room
--- !u!222 &1464550526
CanvasRenderer:
m_ObjectHideFlags: 0
......@@ -737,7 +1253,7 @@ Camera:
m_GameObject: {fileID: 1622086368}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
......@@ -748,7 +1264,7 @@ Camera:
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
......@@ -802,18 +1318,18 @@ RectTransform:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1763030732}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1350433204}
m_Father: {fileID: 351038155}
m_RootOrder: 1
m_Father: {fileID: 1372740361}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -176, y: -121}
m_SizeDelta: {x: 160, y: 30}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1763030734
MonoBehaviour:
......@@ -900,6 +1416,80 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1763030732}
--- !u!1 &1934488917
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1934488918}
- component: {fileID: 1934488920}
- component: {fileID: 1934488919}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1934488918
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1934488917}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1740272}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1934488919
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1934488917}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 2
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Enter text...
--- !u!222 &1934488920
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1934488917}
--- !u!1 &2036355374
GameObject:
m_ObjectHideFlags: 0
......@@ -911,7 +1501,7 @@ GameObject:
- component: {fileID: 2036355376}
- component: {fileID: 2036355375}
m_Layer: 0
m_Name: GameObject
m_Name: Chat Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -954,5 +1544,5 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MessageInputField : MonoBehaviour {
public Chat chat;
public InputField inputField;
void Update () {
if(Input.GetKeyDown(KeyCode.Return) && !string.IsNullOrEmpty(inputField.text))
{
chat.SendMessage(inputField.text);
inputField.text = string.Empty;
}
}
}
fileFormatVersion: 2
guid: d74e03325f4c74af5986ac0df47e31a3
timeCreated: 1517244266
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -14,11 +14,10 @@ public class Chat : MonoBehaviour
public string m_hostAddress {get; set;}
private const int m_port = 50765;
private const int m_port = 50763;
private bool m_isServer = false;
// Use this for initialization
void Start()
{
......@@ -28,9 +27,8 @@ public class Chat : MonoBehaviour
Debug.Log(hostEntry.HostName);
m_hostAddress = hostAddress.ToString ();
m_hostAddress = "127.0.0.1";
m_transport.onStateChanged += OnEventHandling;
}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Main</string>
<key>CFBundleGetInfoString</key>
<string>Unity Player version 2017.3.0p3 (bfcbae508940). (c) 2018 Unity Technologies ApS. All rights reserved.</string>
<key>CFBundleIconFile</key>
<string>PlayerIcon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.Company.ProductName</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>CFBundleName</key>
<string>Basic Network Library</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>0</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>PlayerApplication</string>
<key>UnityBuildNumber</key>
<string>bfcbae508940</string>
<key>LSMinimumSystemVersion</key>
<string>10.9.0</string>
</dict>
</plist>
This file is too large to display.
<%--
//
// DefaultWsdlHelpGenerator.aspx:
//
// Author:
// Lluis Sanchez Gual (lluis@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
//
--%>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml.Serialization" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<%@ Import Namespace="System.Web.Services.Description" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Resources" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.CodeDom" %>
<%@ Import Namespace="System.CodeDom.Compiler" %>
<%@ Import Namespace="Microsoft.CSharp" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<%@ Assembly name="System.Web.Services" %>
<%@ Page debug="true" %>
<html>
<script language="C#" runat="server">
ServiceDescriptionCollection descriptions;
XmlSchemas schemas;
string WebServiceName;
string WebServiceDescription;
string PageName;
string DefaultBinding;
ArrayList ServiceProtocols;
string CurrentOperationName;
string CurrentOperationBinding;
string OperationDocumentation;
string CurrentOperationFormat;
bool CurrentOperationSupportsTest;
ArrayList InParams;
ArrayList OutParams;
string CurrentOperationProtocols;
int CodeTextColumns = 95;
void Page_Load(object sender, EventArgs e)
{
descriptions = (ServiceDescriptionCollection) Context.Items["wsdls"];
schemas = (XmlSchemas) Context.Items["schemas"];
ServiceDescription desc = descriptions [0];
if (schemas.Count == 0) schemas = desc.Types.Schemas;
Service service = desc.Services[0];
WebServiceName = service.Name;
if (desc.Bindings.Count == 0)
return;
DefaultBinding = desc.Bindings[0].Name;
WebServiceDescription = service.Documentation;
ServiceProtocols = FindServiceProtocols (null);
CurrentOperationName = Request.QueryString["op"];
CurrentOperationBinding = Request.QueryString["bnd"];
if (CurrentOperationName != null) BuildOperationInfo ();
PageName = HttpUtility.UrlEncode (Path.GetFileName(Request.Path), Encoding.UTF8);
ArrayList list = new ArrayList ();
foreach (ServiceDescription sd in descriptions) {
foreach (Binding bin in sd.Bindings)
if (bin.Extensions.Find (typeof(SoapBinding)) != null) list.Add (bin);
}
BindingsRepeater.DataSource = list;
Page.DataBind();
}
void BuildOperationInfo ()
{
InParams = new ArrayList ();
OutParams = new ArrayList ();
Port port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
OperationDocumentation = oper.Documentation;
if (OperationDocumentation == null || OperationDocumentation == "")
OperationDocumentation = "No additional remarks";
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput)
BuildParameters (InParams, opm);
else if (opm is OperationOutput)
BuildParameters (OutParams, opm);
}
// Protocols supported by the operation
CurrentOperationProtocols = "";
ArrayList prots = FindServiceProtocols (CurrentOperationName);
for (int n=0; n<prots.Count; n++) {
if (n != 0) CurrentOperationProtocols += ", ";
CurrentOperationProtocols += (string) prots[n];
}
CurrentOperationSupportsTest = prots.Contains ("HttpGet") || prots.Contains ("HttpPost");
// Operation format
OperationBinding obin = FindOperation (binding, CurrentOperationName);
if (obin != null)
CurrentOperationFormat = GetOperationFormat (obin);
InputParamsRepeater.DataSource = InParams;
InputFormParamsRepeater.DataSource = InParams;
OutputParamsRepeater.DataSource = OutParams;
}
void BuildParameters (ArrayList list, OperationMessage opm)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
XmlSchemaComplexType ctype;
if (part.Element == XmlQualifiedName.Empty)
{
ctype = (XmlSchemaComplexType) schemas.Find (part.Type, typeof(XmlSchemaComplexType));
}
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
ctype = (XmlSchemaComplexType) elem.SchemaType;
}
XmlSchemaSequence seq = ctype.Particle as XmlSchemaSequence;
if (seq == null) return;
foreach (XmlSchemaObject ob in seq.Items)
{
Parameter p = new Parameter();
p.Description = "No additional remarks";
if (ob is XmlSchemaElement)
{
XmlSchemaElement selem = GetRefElement ((XmlSchemaElement)ob);
p.Name = selem.Name;
p.Type = selem.SchemaTypeName.Name;
}
else
{
p.Name = "Unknown";
p.Type = "Unknown";
}
list.Add (p);
}
}
else
{
foreach (MessagePart part in msg.Parts)
{
Parameter p = new Parameter ();
p.Description = "No additional remarks";
p.Name = part.Name;
if (part.Element == XmlQualifiedName.Empty)
p.Type = part.Type.Name;
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
p.Type = elem.SchemaTypeName.Name;
}
list.Add (p);
}
}
}
string GetOperationFormat (OperationBinding obin)
{
string format = "";
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
format = sob.Style.ToString ();
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
format += " / " + sbb.Use;
}
return format;
}
XmlSchemaElement GetRefElement (XmlSchemaElement elem)
{
if (!elem.RefName.IsEmpty)
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
else
return elem;
}
ArrayList FindServiceProtocols(string operName)
{
ArrayList table = new ArrayList ();
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
string prot = null;
Binding bin = descriptions.GetBinding (port.Binding);
if (bin.Extensions.Find (typeof(SoapBinding)) != null)
prot = "Soap";
else
{
HttpBinding hb = (HttpBinding) bin.Extensions.Find (typeof(HttpBinding));
if (hb != null && hb.Verb == "POST") prot = "HttpPost";
else if (hb != null && hb.Verb == "GET") prot = "HttpGet";
}
if (prot != null && operName != null)
{
if (FindOperation (bin, operName) == null)
prot = null;
}
if (prot != null && !table.Contains (prot))
table.Add (prot);
}
return table;
}
Port FindPort (string portName, string protocol)
{
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
if (portName == null)
{
Binding binding = descriptions.GetBinding (port.Binding);
if (GetProtocol (binding) == protocol) return port;
}
else if (port.Name == portName)
return port;
}
return null;
}
string GetProtocol (Binding binding)
{
if (binding.Extensions.Find (typeof(SoapBinding)) != null) return "Soap";
HttpBinding hb = (HttpBinding) binding.Extensions.Find (typeof(HttpBinding));
if (hb == null) return "";
if (hb.Verb == "POST") return "HttpPost";
if (hb.Verb == "GET") return "HttpGet";
return "";
}
Operation FindOperation (PortType portType, string name)
{
foreach (Operation oper in portType.Operations) {
if (oper.Messages.Input.Name != null) {
if (oper.Messages.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
OperationBinding FindOperation (Binding binding, string name)
{
foreach (OperationBinding oper in binding.Operations) {
if (oper.Input.Name != null) {
if (oper.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
string FormatBindingName (string name)
{
if (name == DefaultBinding) return "Methods";
else return "Methods for binding<br>" + name;
}
string GetOpName (object op)
{
OperationBinding ob = op as OperationBinding;
if (ob == null) return "";
if (ob.Input.Name != null) return ob.Input.Name;
else return ob.Name;
}
bool HasFormResult
{
get { return Request.QueryString ["ext"] == "testform"; }
}
class NoCheckCertificatePolicy : ICertificatePolicy {
public bool CheckValidationResult (ServicePoint a, X509Certificate b, WebRequest c, int d)
{
return true;
}
}
string GetTestResult ()
{
if (!HasFormResult) return null;
bool fill = false;
string qs = "";
for (int n=0; n<Request.QueryString.Count; n++)
{
if (fill) {
if (qs != "") qs += "&";
qs += Request.QueryString.GetKey(n) + "=" + Server.UrlEncode (Request.QueryString [n]);
}
if (Request.QueryString.GetKey(n) == "ext") fill = true;
}
string location = null;
ServiceDescription desc = descriptions [0];
Service service = desc.Services[0];
foreach (Port port in service.Ports)
if (port.Name == CurrentOperationBinding)
{
SoapAddressBinding sbi = (SoapAddressBinding) port.Extensions.Find (typeof(SoapAddressBinding));
if (sbi != null)
location = sbi.Location;
}
if (location == null)
return "Could not locate web service";
try
{
string url = location + "/" + CurrentOperationName;
Uri uri = new Uri (url);
WebRequest req;
if (CurrentOperationProtocols.IndexOf ("HttpGet") < 0) {
req = WebRequest.Create (url);
req.Method = "POST";
if (qs != null && qs.Length > 0) {
req.ContentType = "application/x-www-form-urlencoded";
byte [] postBuffer = Encoding.UTF8.GetBytes (qs);
req.ContentLength = postBuffer.Length;
using (Stream requestStream = req.GetRequestStream ())
requestStream.Write (postBuffer, 0, postBuffer.Length);
}
}
else
req = WebRequest.Create (url + "?" + qs);
if (url.StartsWith ("https:"))
ServicePointManager.CertificatePolicy = new NoCheckCertificatePolicy ();
HttpCookieCollection cookies = Request.Cookies;
int last = cookies.Count;
if (last > 0) {
CookieContainer container = new CookieContainer ();
for (int i = 0; i < last; i++) {
HttpCookie hcookie = cookies [i];
Cookie cookie = new Cookie (hcookie.Name, hcookie.Value, hcookie.Path, hcookie.Domain);
container.Add (uri, cookie);
}
((HttpWebRequest) req).CookieContainer = container;
}
WebResponse resp = req.GetResponse();
StreamReader sr = new StreamReader (resp.GetResponseStream());
string s = sr.ReadToEnd ();
sr.Close ();
return "<div class='code-xml'>" + ColorizeXml(WrapText(s,CodeTextColumns)) + "</div>";
}
catch (Exception ex)
{
string res = "<b style='color:red'>" + ex.Message + "</b>";
WebException wex = ex as WebException;
if (wex != null)
{
WebResponse resp = wex.Response;
if (resp != null) {
StreamReader sr = new StreamReader (resp.GetResponseStream());
string s = sr.ReadToEnd ();
sr.Close ();
res += "<div class='code-xml'>" + ColorizeXml(WrapText(s,CodeTextColumns)) + "</div>";
}
}
return res;
}
}
string GenerateOperationMessages (string protocol, bool generateInput)
{
if (!IsOperationSupported (protocol)) return "";
Port port;
if (protocol != "Soap") port = FindPort (null, protocol);
else port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
OperationBinding obin = FindOperation (binding, CurrentOperationName);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
HtmlSampleGenerator sg = new HtmlSampleGenerator (descriptions, schemas);
string txt = sg.GenerateMessage (port, obin, oper, protocol, generateInput);
if (protocol == "Soap") txt = WrapText (txt,CodeTextColumns);
txt = ColorizeXml (txt);
txt = txt.Replace ("@placeholder!","<span class='literal-placeholder'>");
txt = txt.Replace ("!placeholder@","</span>");
return txt;
}
bool IsOperationSupported (string protocol)
{
if (CurrentPage != "op" || CurrentTab != "msg") return false;
if (protocol == "Soap") return true;
Port port = FindPort (null, protocol);
if (port == null) return false;
Binding binding = descriptions.GetBinding (port.Binding);
if (binding == null) return false;
return FindOperation (binding, CurrentOperationName) != null;
}
//
// Proxy code generation
//
string GetProxyCode ()
{
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add (codeNamespace);
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
foreach (ServiceDescription sd in descriptions)
importer.AddServiceDescription(sd, null, null);
foreach (XmlSchema sc in schemas)
importer.Schemas.Add (sc);
importer.Import(codeNamespace, codeUnit);
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
CodeDomProvider provider = GetProvider (langId);
ICodeGenerator generator = provider.CreateGenerator();
CodeGeneratorOptions options = new CodeGeneratorOptions();
StringWriter sw = new StringWriter ();
generator.GenerateCodeFromCompileUnit(codeUnit, sw, options);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), langId);
}
public string CurrentLanguage
{
get {
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
return langId;
}
}
public string CurrentProxytName
{
get {
string lan = CurrentLanguage == "cs" ? "C#" : "Visual Basic";
return lan + " Client Proxy";
}
}
private CodeDomProvider GetProvider(string langId)
{
switch (langId.ToUpper())
{
case "CS": return new CSharpCodeProvider();
case "VB": return new VBCodeProvider();
default: return null;
}
}
//
// Document generation
//
string GenerateDocument ()
{
StringWriter sw = new StringWriter ();
if (CurrentDocType == "wsdl")
descriptions [CurrentDocInd].Write (sw);
else if (CurrentDocType == "schema")
schemas [CurrentDocInd].Write (sw);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), "xml");
}
public string CurrentDocType
{
get { return Request.QueryString ["doctype"] != null ? Request.QueryString ["doctype"] : "wsdl"; }
}
public int CurrentDocInd
{
get { return Request.QueryString ["docind"] != null ? int.Parse (Request.QueryString ["docind"]) : 0; }
}
public string CurrentDocumentName
{
get {
if (CurrentDocType == "wsdl")
return "WSDL document for namespace \"" + descriptions [CurrentDocInd].TargetNamespace + "\"";
else
return "Xml Schema for namespace \"" + schemas [CurrentDocInd].TargetNamespace + "\"";
}
}
//
// Pages and tabs
//
bool firstTab = true;
ArrayList disabledTabs = new ArrayList ();
string CurrentTab
{
get { return Request.QueryString["tab"] != null ? Request.QueryString["tab"] : "main" ; }
}
string CurrentPage
{
get { return Request.QueryString["page"] != null ? Request.QueryString["page"] : "main" ; }
}
void WriteTabs ()
{
if (CurrentOperationName != null)
{
WriteTab ("main","Overview");
WriteTab ("test","Test Form");
WriteTab ("msg","Message Layout");
}
}
void WriteTab (string id, string label)
{
if (!firstTab) Response.Write("&nbsp;|&nbsp;");
firstTab = false;
string cname = CurrentTab == id ? "tabLabelOn" : "tabLabelOff";
Response.Write ("<a href='" + PageName + "?" + GetPageContext(null) + GetDataContext() + "tab=" + id + "' style='text-decoration:none'>");
Response.Write ("<span class='" + cname + "'>" + label + "</span>");
Response.Write ("</a>");
}
string GetTabContext (string pag, string tab)
{
if (tab == null) tab = CurrentTab;
if (pag == null) pag = CurrentPage;
if (pag != CurrentPage) tab = "main";
return "page=" + pag + "&tab=" + tab + "&";
}
string GetPageContext (string pag)
{
if (pag == null) pag = CurrentPage;
return "page=" + pag + "&";
}
class Tab
{
public string Id;
public string Label;
}
//
// Syntax coloring
//
static string keywords_cs =
"(\\babstract\\b|\\bevent\\b|\\bnew\\b|\\bstruct\\b|\\bas\\b|\\bexplicit\\b|\\bnull\\b|\\bswitch\\b|\\bbase\\b|\\bextern\\b|" +
"\\bobject\\b|\\bthis\\b|\\bbool\\b|\\bfalse\\b|\\boperator\\b|\\bthrow\\b|\\bbreak\\b|\\bfinally\\b|\\bout\\b|\\btrue\\b|" +
"\\bbyte\\b|\\bfixed\\b|\\boverride\\b|\\btry\\b|\\bcase\\b|\\bfloat\\b|\\bparams\\b|\\btypeof\\b|\\bcatch\\b|\\bfor\\b|" +
"\\bprivate\\b|\\buint\\b|\\bchar\\b|\\bforeach\\b|\\bprotected\\b|\\bulong\\b|\\bchecked\\b|\\bgoto\\b|\\bpublic\\b|" +
"\\bunchecked\\b|\\bclass\\b|\\bif\\b|\\breadonly\\b|\\bunsafe\\b|\\bconst\\b|\\bimplicit\\b|\\bref\\b|\\bushort\\b|" +
"\\bcontinue\\b|\\bin\\b|\\breturn\\b|\\busing\\b|\\bdecimal\\b|\\bint\\b|\\bsbyte\\b|\\bvirtual\\b|\\bdefault\\b|" +
"\\binterface\\b|\\bsealed\\b|\\bvolatile\\b|\\bdelegate\\b|\\binternal\\b|\\bshort\\b|\\bvoid\\b|\\bdo\\b|\\bis\\b|" +
"\\bsizeof\\b|\\bwhile\\b|\\bdouble\\b|\\block\\b|\\bstackalloc\\b|\\belse\\b|\\blong\\b|\\bstatic\\b|\\benum\\b|" +
"\\bnamespace\\b|\\bstring\\b)";
static string keywords_vb =
"(\\bAddHandler\\b|\\bAddressOf\\b|\\bAlias\\b|\\bAnd\\b|\\bAndAlso\\b|\\bAnsi\\b|\\bAs\\b|\\bAssembly\\b|" +
"\\bAuto\\b|\\bBoolean\\b|\\bByRef\\b|\\bByte\\b|\\bByVal\\b|\\bCall\\b|\\bCase\\b|\\bCatch\\b|" +
"\\bCBool\\b|\\bCByte\\b|\\bCChar\\b|\\bCDate\\b|\\bCDec\\b|\\bCDbl\\b|\\bChar\\b|\\bCInt\\b|" +
"\\bClass\\b|\\bCLng\\b|\\bCObj\\b|\\bConst\\b|\\bCShort\\b|\\bCSng\\b|\\bCStr\\b|\\bCType\\b|" +
"\\bDate\\b|\\bDecimal\\b|\\bDeclare\\b|\\bDefault\\b|\\bDelegate\\b|\\bDim\\b|\\bDirectCast\\b|\\bDo\\b|" +
"\\bDouble\\b|\\bEach\\b|\\bElse\\b|\\bElseIf\\b|\\bEnd\\b|\\bEnum\\b|\\bErase\\b|\\bError\\b|" +
"\\bEvent\\b|\\bExit\\b|\\bFalse\\b|\\bFinally\\b|\\bFor\\b|\\bFriend\\b|\\bFunction\\b|\\bGet\\b|" +
"\\bGetType\\b|\\bGoSub\\b|\\bGoTo\\b|\\bHandles\\b|\\bIf\\b|\\bImplements\\b|\\bImports\\b|\\bIn\\b|" +
"\\bInherits\\b|\\bInteger\\b|\\bInterface\\b|\\bIs\\b|\\bLet\\b|\\bLib\\b|\\bLike\\b|\\bLong\\b|" +
"\\bLoop\\b|\\bMe\\b|\\bMod\\b|\\bModule\\b|\\bMustInherit\\b|\\bMustOverride\\b|\\bMyBase\\b|\\bMyClass\\b|" +
"\\bNamespace\\b|\\bNew\\b|\\bNext\\b|\\bNot\\b|\\bNothing\\b|\\bNotInheritable\\b|\\bNotOverridable\\b|\\bObject\\b|" +
"\\bOn\\b|\\bOption\\b|\\bOptional\\b|\\bOr\\b|\\bOrElse\\b|\\bOverloads\\b|\\bOverridable\\b|\\bOverrides\\b|" +
"\\bParamArray\\b|\\bPreserve\\b|\\bPrivate\\b|\\bProperty\\b|\\bProtected\\b|\\bPublic\\b|\\bRaiseEvent\\b|\\bReadOnly\\b|" +
"\\bReDim\\b|\\bREM\\b|\\bRemoveHandler\\b|\\bResume\\b|\\bReturn\\b|\\bSelect\\b|\\bSet\\b|\\bShadows\\b|" +
"\\bShared\\b|\\bShort\\b|\\bSingle\\b|\\bStatic\\b|\\bStep\\b|\\bStop\\b|\\bString\\b|\\bStructure\\b|" +
"\\bSub\\b|\\bSyncLock\\b|\\bThen\\b|\\bThrow\\b|\\bTo\\b|\\bTrue\\b|\\bTry\\b|\\bTypeOf\\b|" +
"\\bUnicode\\b|\\bUntil\\b|\\bVariant\\b|\\bWhen\\b|\\bWhile\\b|\\bWith\\b|\\bWithEvents\\b|\\bWriteOnly\\b|\\bXor\\b)";
string Colorize (string text, string lang)
{
if (lang == "xml") return ColorizeXml (text);
else if (lang == "cs") return ColorizeCs (text);
else if (lang == "vb") return ColorizeVb (text);
else return text;
}
string ColorizeXml (string text)
{
text = text.Replace (" ", "&nbsp;");
Regex re = new Regex ("\r\n|\r|\n");
text = re.Replace (text, "_br_");
re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
text = re.Replace (text,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = new Regex ("\\{(\\w*):([\\s\\S]*?)\\}");
text = re.Replace (text,"<span style='color:$1'>$2</span>");
re = new Regex ("\"(.*?)\"");
text = re.Replace (text,"\"<span style='color:purple'>$1</span>\"");
text = text.Replace ("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("_br_", "<br>");
return text;
}
string ColorizeCs (string text)
{
text = text.Replace (" ", "&nbsp;");
text = text.Replace ("<", "&lt;");
text = text.Replace (">", "&gt;");
Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("//(((.(?!\"</span>))|\"(((?!\").)*)\"</span>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_cs);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
string ColorizeVb (string text)
{
text = text.Replace (" ", "&nbsp;");
/* Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("'(((.(?!\"\\<\\/span\\>))|\"(((?!\").)*)\"\\<\\/span\\>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_vb);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
*/
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
//
// Helper methods and classes
//
string GetDataContext ()
{
return "op=" + CurrentOperationName + "&bnd=" + CurrentOperationBinding + "&";
}
string GetOptionSel (string v1, string v2)
{
string op = "<option ";
if (v1 == v2) op += "selected ";
return op + "value='" + v1 + "'>";
}
string WrapText (string text, int maxChars)
{
text = text.Replace(" />","/>");
string linspace = null;
int lincount = 0;
int breakpos = 0;
int linstart = 0;
bool inquotes = false;
char lastc = ' ';
string sublineIndent = "";
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
for (int n=0; n<text.Length; n++)
{
char c = text [n];
if (c=='\r' || c=='\n' || n==text.Length-1)
{
sb.Append (linspace + sublineIndent + text.Substring (linstart, n-linstart+1));
linspace = null;
lincount = 0;
linstart = n+1;
breakpos = linstart;
sublineIndent = "";
lastc = c;
continue;
}
if (lastc==',' || lastc=='(')
{
if (!inquotes) breakpos = n;
}
if (lincount > maxChars && breakpos >= linstart)
{
if (linspace != null)
sb.Append (linspace + sublineIndent);
sb.Append (text.Substring (linstart, breakpos-linstart));
sb.Append ("\n");
sublineIndent = " ";
lincount = linspace.Length + sublineIndent.Length + (n-breakpos);
linstart = breakpos;
}
if (c==' ' || c=='\t')
{
if (!inquotes)
breakpos = n;
}
else if (c=='"')
{
inquotes = !inquotes;
}
else
if (linspace == null) {
linspace = text.Substring (linstart, n-linstart);
linstart = n;
}
lincount++;
lastc = c;
}
return sb.ToString ();
}
class Parameter
{
string name;
string type;
string description;
public string Name { get { return name; } set { name = value; } }
public string Type { get { return type; } set { type = value; } }
public string Description { get { return description; } set { description = value; } }
}
public class HtmlSampleGenerator: SampleGenerator
{
public HtmlSampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
: base (services, schemas)
{
}
protected override string GetLiteral (string s)
{
return "@placeholder!" + s + "!placeholder@";
}
}
public class SampleGenerator
{
protected ServiceDescriptionCollection descriptions;
protected XmlSchemas schemas;
XmlSchemaElement anyElement;
ArrayList queue;
SoapBindingUse currentUse;
XmlDocument document = new XmlDocument ();
static readonly XmlQualifiedName anyType = new XmlQualifiedName ("anyType",XmlSchema.Namespace);
static readonly XmlQualifiedName arrayType = new XmlQualifiedName ("Array","http://schemas.xmlsoap.org/soap/encoding/");
static readonly XmlQualifiedName arrayTypeRefName = new XmlQualifiedName ("arrayType","http://schemas.xmlsoap.org/soap/encoding/");
const string SoapEnvelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
const string WsdlNamespace = "http://schemas.xmlsoap.org/wsdl/";
const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
class EncodedType
{
public EncodedType (string ns, XmlSchemaElement elem) { Namespace = ns; Element = elem; }
public string Namespace;
public XmlSchemaElement Element;
}
public SampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
{
descriptions = services;
this.schemas = schemas;
queue = new ArrayList ();
}
public string GenerateMessage (Port port, OperationBinding obin, Operation oper, string protocol, bool generateInput)
{
OperationMessage msg = null;
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput && generateInput) msg = opm;
else if (opm is OperationOutput && !generateInput) msg = opm;
}
if (msg == null) return null;
switch (protocol) {
case "Soap": return GenerateHttpSoapMessage (port, obin, oper, msg);
case "HttpGet": return GenerateHttpGetMessage (port, obin, oper, msg);
case "HttpPost": return GenerateHttpPostMessage (port, obin, oper, msg);
}
return "Unknown protocol";
}
public string GenerateHttpSoapMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
SoapAddressBinding sab = port.Extensions.Find (typeof(SoapAddressBinding)) as SoapAddressBinding;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
req += "POST " + new Uri (sab.Location).AbsolutePath + "\n";
req += "SOAPAction: " + sob.SoapAction + "\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
}
req += GenerateSoapMessage (obin, oper, msg);
return req;
}
public string GenerateHttpGetMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location + "?" + BuildQueryString (msg);
req += "GET " + location + "\n";
req += "Host: " + GetLiteral ("string");
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
MimeXmlBinding mxb = (MimeXmlBinding) obin.Output.Extensions.Find (typeof(MimeXmlBinding)) as MimeXmlBinding;
if (mxb == null) return req;
Message message = descriptions.GetMessage (msg.Message);
XmlQualifiedName ename = null;
foreach (MessagePart part in message.Parts)
if (part.Name == mxb.Part) ename = part.Element;
if (ename == null) return req + GetLiteral("string");
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
currentUse = SoapBindingUse.Literal;
WriteRootElementSample (xtw, ename);
xtw.Close ();
req += sw.ToString ();
}
return req;
}
public string GenerateHttpPostMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location;
req += "POST " + location + "\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
req += BuildQueryString (msg);
}
else return GenerateHttpGetMessage (port, obin, oper, msg);
return req;
}
string BuildQueryString (OperationMessage opm)
{
string s = "";
Message msg = descriptions.GetMessage (opm.Message);
foreach (MessagePart part in msg.Parts)
{
if (s.Length != 0) s += "&";
s += part.Name + "=" + GetLiteral (part.Type.Name);
}
return s;
}
public string GenerateSoapMessage (OperationBinding obin, Operation oper, OperationMessage msg)
{
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
SoapBindingStyle style = (sob != null) ? sob.Style : SoapBindingStyle.Document;
MessageBinding msgbin = (msg is OperationInput) ? (MessageBinding) obin.Input : (MessageBinding)obin.Output;
SoapBodyBinding sbb = msgbin.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
SoapBindingUse bodyUse = (sbb != null) ? sbb.Use : SoapBindingUse.Literal;
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument ();
xtw.WriteStartElement ("soap", "Envelope", SoapEnvelopeNamespace);
xtw.WriteAttributeString ("xmlns", "xsi", null, XmlSchema.InstanceNamespace);
xtw.WriteAttributeString ("xmlns", "xsd", null, XmlSchema.Namespace);
if (bodyUse == SoapBindingUse.Encoded)
{
xtw.WriteAttributeString ("xmlns", "soapenc", null, SoapEncodingNamespace);
xtw.WriteAttributeString ("xmlns", "tns", null, msg.Message.Namespace);
}
// Serialize headers
bool writtenHeader = false;
foreach (object ob in msgbin.Extensions)
{
SoapHeaderBinding hb = ob as SoapHeaderBinding;
if (hb == null) continue;
if (!writtenHeader) {
xtw.WriteStartElement ("soap", "Header", SoapEnvelopeNamespace);
writtenHeader = true;
}
WriteHeader (xtw, hb);
}
if (writtenHeader)
xtw.WriteEndElement ();
// Serialize body
xtw.WriteStartElement ("soap", "Body", SoapEnvelopeNamespace);
currentUse = bodyUse;
WriteBody (xtw, oper, msg, sbb, style);
xtw.WriteEndElement ();
xtw.WriteEndElement ();
xtw.Close ();
return sw.ToString ();
}
void WriteHeader (XmlTextWriter xtw, SoapHeaderBinding header)
{
Message msg = descriptions.GetMessage (header.Message);
if (msg == null) throw new InvalidOperationException ("Message " + header.Message + " not found");
MessagePart part = msg.Parts [header.Part];
if (part == null) throw new InvalidOperationException ("Message part " + header.Part + " not found in message " + header.Message);
currentUse = header.Use;
if (currentUse == SoapBindingUse.Literal)
WriteRootElementSample (xtw, part.Element);
else
WriteTypeSample (xtw, part.Type);
}
void WriteBody (XmlTextWriter xtw, Operation oper, OperationMessage opm, SoapBodyBinding sbb, SoapBindingStyle style)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
if (part.Element == XmlQualifiedName.Empty)
WriteTypeSample (xtw, part.Type);
else
WriteRootElementSample (xtw, part.Element);
}
else
{
string elemName = oper.Name;
string ns = "";
if (opm is OperationOutput) elemName += "Response";
if (style == SoapBindingStyle.Rpc) {
xtw.WriteStartElement (elemName, sbb.Namespace);
ns = sbb.Namespace;
}
foreach (MessagePart part in msg.Parts)
{
if (part.Element == XmlQualifiedName.Empty)
{
XmlSchemaElement elem = new XmlSchemaElement ();
elem.SchemaTypeName = part.Type;
elem.Name = part.Name;
WriteElementSample (xtw, ns, elem);
}
else
WriteRootElementSample (xtw, part.Element);
}
if (style == SoapBindingStyle.Rpc)
xtw.WriteEndElement ();
}
WriteQueuedTypeSamples (xtw);
}
void WriteRootElementSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (qname, typeof(XmlSchemaElement));
if (elem == null) throw new InvalidOperationException ("Element not found: " + qname);
WriteElementSample (xtw, qname.Namespace, elem);
}
void WriteElementSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
bool sharedAnnType = false;
XmlQualifiedName root;
if (!elem.RefName.IsEmpty) {
XmlSchemaElement refElem = FindRefElement (elem);
if (refElem == null) throw new InvalidOperationException ("Global element not found: " + elem.RefName);
root = elem.RefName;
elem = refElem;
sharedAnnType = true;
}
else
root = new XmlQualifiedName (elem.Name, ns);
if (!elem.SchemaTypeName.IsEmpty)
{
XmlSchemaComplexType st = FindComplexTyype (elem.SchemaTypeName);
if (st != null)
WriteComplexTypeSample (xtw, st, root);
else
{
xtw.WriteStartElement (root.Name, root.Namespace);
if (currentUse == SoapBindingUse.Encoded)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, elem.SchemaTypeName));
xtw.WriteString (GetLiteral (FindBuiltInType (elem.SchemaTypeName)));
xtw.WriteEndElement ();
}
}
else if (elem.SchemaType == null)
{
xtw.WriteStartElement ("any");
xtw.WriteEndElement ();
}
else
WriteComplexTypeSample (xtw, (XmlSchemaComplexType) elem.SchemaType, root);
}
void WriteTypeSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaComplexType ctype = FindComplexTyype (qname);
if (ctype != null) {
WriteComplexTypeSample (xtw, ctype, qname);
return;
}
XmlSchemaSimpleType stype = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (stype != null) {
WriteSimpleTypeSample (xtw, stype);
return;
}
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
throw new InvalidOperationException ("Type not found: " + qname);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName)
{
WriteComplexTypeSample (xtw, stype, rootName, -1);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName, int id)
{
string ns = rootName.Namespace;
if (rootName.Name.IndexOf ("[]") != -1) rootName = arrayType;
if (currentUse == SoapBindingUse.Encoded) {
string pref = xtw.LookupPrefix (rootName.Namespace);
if (pref == null) pref = "q1";
xtw.WriteStartElement (pref, rootName.Name, rootName.Namespace);
ns = "";
}
else
xtw.WriteStartElement (rootName.Name, rootName.Namespace);
if (id != -1)
{
xtw.WriteAttributeString ("id", "id" + id);
if (rootName != arrayType)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, rootName));
}
WriteComplexTypeAttributes (xtw, stype);
WriteComplexTypeElements (xtw, ns, stype);
xtw.WriteEndElement ();
}
void WriteComplexTypeAttributes (XmlTextWriter xtw, XmlSchemaComplexType stype)
{
WriteAttributes (xtw, stype.Attributes, stype.AnyAttribute);
}
void WriteComplexTypeElements (XmlTextWriter xtw, string ns, XmlSchemaComplexType stype)
{
if (stype.Particle != null)
WriteParticleComplexContent (xtw, ns, stype.Particle);
else
{
if (stype.ContentModel is XmlSchemaSimpleContent)
WriteSimpleContent (xtw, (XmlSchemaSimpleContent)stype.ContentModel);
else if (stype.ContentModel is XmlSchemaComplexContent)
WriteComplexContent (xtw, ns, (XmlSchemaComplexContent)stype.ContentModel);
}
}
void WriteAttributes (XmlTextWriter xtw, XmlSchemaObjectCollection atts, XmlSchemaAnyAttribute anyat)
{
foreach (XmlSchemaObject at in atts)
{
if (at is XmlSchemaAttribute)
{
string ns;
XmlSchemaAttribute attr = (XmlSchemaAttribute)at;
XmlSchemaAttribute refAttr = attr;
// refAttr.Form; TODO
if (!attr.RefName.IsEmpty) {
refAttr = FindRefAttribute (attr.RefName);
if (refAttr == null) throw new InvalidOperationException ("Global attribute not found: " + attr.RefName);
}
string val;
if (!refAttr.SchemaTypeName.IsEmpty) val = FindBuiltInType (refAttr.SchemaTypeName);
else val = FindBuiltInType ((XmlSchemaSimpleType) refAttr.SchemaType);
xtw.WriteAttributeString (refAttr.Name, val);
}
else if (at is XmlSchemaAttributeGroupRef)
{
XmlSchemaAttributeGroupRef gref = (XmlSchemaAttributeGroupRef)at;
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
WriteAttributes (xtw, grp.Attributes, grp.AnyAttribute);
}
}
if (anyat != null)
xtw.WriteAttributeString ("custom-attribute","value");
}
void WriteParticleComplexContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle)
{
WriteParticleContent (xtw, ns, particle, false);
}
void WriteParticleContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle, bool multiValue)
{
if (particle is XmlSchemaGroupRef)
particle = GetRefGroupParticle ((XmlSchemaGroupRef)particle);
if (particle.MaxOccurs > 1) multiValue = true;
if (particle is XmlSchemaSequence) {
WriteSequenceContent (xtw, ns, ((XmlSchemaSequence)particle).Items, multiValue);
}
else if (particle is XmlSchemaChoice) {
if (((XmlSchemaChoice)particle).Items.Count == 1)
WriteSequenceContent (xtw, ns, ((XmlSchemaChoice)particle).Items, multiValue);
else
WriteChoiceContent (xtw, ns, (XmlSchemaChoice)particle, multiValue);
}
else if (particle is XmlSchemaAll) {
WriteSequenceContent (xtw, ns, ((XmlSchemaAll)particle).Items, multiValue);
}
}
void WriteSequenceContent (XmlTextWriter xtw, string ns, XmlSchemaObjectCollection items, bool multiValue)
{
foreach (XmlSchemaObject item in items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteContentItem (XmlTextWriter xtw, string ns, XmlSchemaObject item, bool multiValue)
{
if (item is XmlSchemaGroupRef)
item = GetRefGroupParticle ((XmlSchemaGroupRef)item);
if (item is XmlSchemaElement)
{
XmlSchemaElement elem = (XmlSchemaElement) item;
XmlSchemaElement refElem;
if (!elem.RefName.IsEmpty) refElem = FindRefElement (elem);
else refElem = elem;
int num = (elem.MaxOccurs == 1 && !multiValue) ? 1 : 2;
for (int n=0; n<num; n++)
{
if (currentUse == SoapBindingUse.Literal)
WriteElementSample (xtw, ns, refElem);
else
WriteRefTypeSample (xtw, ns, refElem);
}
}
else if (item is XmlSchemaAny)
{
xtw.WriteString (GetLiteral ("xml"));
}
else if (item is XmlSchemaParticle) {
WriteParticleContent (xtw, ns, (XmlSchemaParticle)item, multiValue);
}
}
void WriteChoiceContent (XmlTextWriter xtw, string ns, XmlSchemaChoice choice, bool multiValue)
{
foreach (XmlSchemaObject item in choice.Items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteSimpleContent (XmlTextWriter xtw, XmlSchemaSimpleContent content)
{
XmlSchemaSimpleContentExtension ext = content.Content as XmlSchemaSimpleContentExtension;
if (ext != null)
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
XmlQualifiedName qname = GetContentBaseType (content.Content);
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
}
string FindBuiltInType (XmlQualifiedName qname)
{
if (qname.Namespace == XmlSchema.Namespace)
return qname.Name;
XmlSchemaComplexType ct = FindComplexTyype (qname);
if (ct != null)
{
XmlSchemaSimpleContent sc = ct.ContentModel as XmlSchemaSimpleContent;
if (sc == null) throw new InvalidOperationException ("Invalid schema");
return FindBuiltInType (GetContentBaseType (sc.Content));
}
XmlSchemaSimpleType st = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (st != null)
return FindBuiltInType (st);
throw new InvalidOperationException ("Definition of type " + qname + " not found");
}
string FindBuiltInType (XmlSchemaSimpleType st)
{
if (st.Content is XmlSchemaSimpleTypeRestriction) {
return FindBuiltInType (GetContentBaseType (st.Content));
}
else if (st.Content is XmlSchemaSimpleTypeList) {
string s = FindBuiltInType (GetContentBaseType (st.Content));
return s + " " + s + " ...";
}
else if (st.Content is XmlSchemaSimpleTypeUnion)
{
//Check if all types of the union are equal. If not, then will use anyType.
XmlSchemaSimpleTypeUnion uni = (XmlSchemaSimpleTypeUnion) st.Content;
string utype = null;
// Anonymous types are unique
if (uni.BaseTypes.Count != 0 && uni.MemberTypes.Length != 0)
return "string";
foreach (XmlQualifiedName mt in uni.MemberTypes)
{
string qn = FindBuiltInType (mt);
if (utype != null && qn != utype) return "string";
else utype = qn;
}
return utype;
}
else
return "string";
}
XmlQualifiedName GetContentBaseType (XmlSchemaObject ob)
{
if (ob is XmlSchemaSimpleContentExtension)
return ((XmlSchemaSimpleContentExtension)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleContentRestriction)
return ((XmlSchemaSimpleContentRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeRestriction)
return ((XmlSchemaSimpleTypeRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeList)
return ((XmlSchemaSimpleTypeList)ob).ItemTypeName;
else
return null;
}
void WriteComplexContent (XmlTextWriter xtw, string ns, XmlSchemaComplexContent content)
{
XmlQualifiedName qname;
XmlSchemaComplexContentExtension ext = content.Content as XmlSchemaComplexContentExtension;
if (ext != null) qname = ext.BaseTypeName;
else {
XmlSchemaComplexContentRestriction rest = (XmlSchemaComplexContentRestriction)content.Content;
qname = rest.BaseTypeName;
if (qname == arrayType) {
ParseArrayType (rest, out qname);
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "Item";
elem.SchemaTypeName = qname;
xtw.WriteAttributeString ("arrayType", SoapEncodingNamespace, qname.Name + "[2]");
WriteContentItem (xtw, ns, elem, true);
return;
}
}
// Add base map members to this map
XmlSchemaComplexType ctype = FindComplexTyype (qname);
WriteComplexTypeAttributes (xtw, ctype);
if (ext != null) {
// Add the members of this map
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
if (ext.Particle != null)
WriteParticleComplexContent (xtw, ns, ext.Particle);
}
WriteComplexTypeElements (xtw, ns, ctype);
}
void ParseArrayType (XmlSchemaComplexContentRestriction rest, out XmlQualifiedName qtype)
{
XmlSchemaAttribute arrayTypeAt = FindArrayAttribute (rest.Attributes);
XmlAttribute[] uatts = arrayTypeAt.UnhandledAttributes;
if (uatts == null || uatts.Length == 0) throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
XmlAttribute xat = null;
foreach (XmlAttribute at in uatts)
if (at.LocalName == "arrayType" && at.NamespaceURI == WsdlNamespace)
{ xat = at; break; }
if (xat == null)
throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
string arrayType = xat.Value;
string type, ns;
int i = arrayType.LastIndexOf (":");
if (i == -1) ns = "";
else ns = arrayType.Substring (0,i);
int j = arrayType.IndexOf ("[", i+1);
if (j == -1) throw new InvalidOperationException ("Cannot parse WSDL array type: " + arrayType);
type = arrayType.Substring (i+1);
type = type.Substring (0, type.Length-2);
qtype = new XmlQualifiedName (type, ns);
}
XmlSchemaAttribute FindArrayAttribute (XmlSchemaObjectCollection atts)
{
foreach (object ob in atts)
{
XmlSchemaAttribute att = ob as XmlSchemaAttribute;
if (att != null && att.RefName == arrayTypeRefName) return att;
XmlSchemaAttributeGroupRef gref = ob as XmlSchemaAttributeGroupRef;
if (gref != null)
{
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
att = FindArrayAttribute (grp.Attributes);
if (att != null) return att;
}
}
return null;
}
void WriteSimpleTypeSample (XmlTextWriter xtw, XmlSchemaSimpleType stype)
{
xtw.WriteString (GetLiteral (FindBuiltInType (stype)));
}
XmlSchemaParticle GetRefGroupParticle (XmlSchemaGroupRef refGroup)
{
XmlSchemaGroup grp = (XmlSchemaGroup) schemas.Find (refGroup.RefName, typeof (XmlSchemaGroup));
return grp.Particle;
}
XmlSchemaElement FindRefElement (XmlSchemaElement elem)
{
if (elem.RefName.Namespace == XmlSchema.Namespace)
{
if (anyElement != null) return anyElement;
anyElement = new XmlSchemaElement ();
anyElement.Name = "any";
anyElement.SchemaTypeName = anyType;
return anyElement;
}
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
}
XmlSchemaAttribute FindRefAttribute (XmlQualifiedName refName)
{
if (refName.Namespace == XmlSchema.Namespace)
{
XmlSchemaAttribute at = new XmlSchemaAttribute ();
at.Name = refName.Name;
at.SchemaTypeName = new XmlQualifiedName ("string",XmlSchema.Namespace);
return at;
}
return (XmlSchemaAttribute) schemas.Find (refName, typeof(XmlSchemaAttribute));
}
void WriteRefTypeSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
if (elem.SchemaTypeName.Namespace == XmlSchema.Namespace || schemas.Find (elem.SchemaTypeName, typeof(XmlSchemaSimpleType)) != null)
WriteElementSample (xtw, ns, elem);
else
{
xtw.WriteStartElement (elem.Name, ns);
xtw.WriteAttributeString ("href", "#id" + (queue.Count+1));
xtw.WriteEndElement ();
queue.Add (new EncodedType (ns, elem));
}
}
void WriteQueuedTypeSamples (XmlTextWriter xtw)
{
for (int n=0; n<queue.Count; n++)
{
EncodedType ec = (EncodedType) queue[n];
XmlSchemaComplexType st = FindComplexTyype (ec.Element.SchemaTypeName);
WriteComplexTypeSample (xtw, st, ec.Element.SchemaTypeName, n+1);
}
}
XmlSchemaComplexType FindComplexTyype (XmlQualifiedName qname)
{
if (qname.Name.IndexOf ("[]") != -1)
{
XmlSchemaComplexType stype = new XmlSchemaComplexType ();
stype.ContentModel = new XmlSchemaComplexContent ();
XmlSchemaComplexContentRestriction res = new XmlSchemaComplexContentRestriction ();
stype.ContentModel.Content = res;
res.BaseTypeName = arrayType;
XmlSchemaAttribute att = new XmlSchemaAttribute ();
att.RefName = arrayTypeRefName;
res.Attributes.Add (att);
XmlAttribute xat = document.CreateAttribute ("arrayType", WsdlNamespace);
xat.Value = qname.Namespace + ":" + qname.Name;
att.UnhandledAttributes = new XmlAttribute[] {xat};
return stype;
}
return (XmlSchemaComplexType) schemas.Find (qname, typeof(XmlSchemaComplexType));
}
string GetQualifiedNameString (XmlTextWriter xtw, XmlQualifiedName qname)
{
string pref = xtw.LookupPrefix (qname.Namespace);
if (pref != null) return pref + ":" + qname.Name;
xtw.WriteAttributeString ("xmlns", "q1", null, qname.Namespace);
return "q1:" + qname.Name;
}
protected virtual string GetLiteral (string s)
{
return s;
}
void GetOperationFormat (OperationBinding obin, out SoapBindingStyle style, out SoapBindingUse use)
{
style = SoapBindingStyle.Document;
use = SoapBindingUse.Literal;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
style = sob.Style;
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
use = sbb.Use;
}
}
}
</script>
<head>
<link rel="alternate" type="text/xml" href="<%=Request.FilePath%>?disco"/>
<title><%=WebServiceName%> Web Service</title>
<style type="text/css">
BODY { font-family: Arial; margin-left: 20px; margin-top: 20px; font-size: x-small}
TABLE { font-size: x-small }
.title { color:dimgray; font-family: Arial; font-size:20pt; font-weight:900}
.operationTitle { color:dimgray; font-family: Arial; font-size:15pt; font-weight:900}
.method { font-size: x-small }
.bindingLabel { font-size: x-small; font-weight:bold; color:darkgray; line-height:8pt; display:block; margin-bottom:3px }
.label { font-size: small; font-weight:bold; color:darkgray }
.paramTable { font-size: x-small }
.paramTable TR { background-color: gainsboro }
.paramFormTable { font-size: x-small; padding: 10px; background-color: gainsboro }
.paramFormTable TR { background-color: gainsboro }
.paramInput { border: solid 1px gray }
.button {border: solid 1px gray }
.smallSeparator { height:3px; overflow:hidden }
.panel { background-color:whitesmoke; border: solid 1px silver; border-top: solid 1px silver }
.codePanel { background-color: white; font-size:x-small; padding:7px; border:solid 1px silver}
.code-xml { font-size:10pt; font-family:courier }
.code-cs { font-size:10pt; font-family:courier }
.code-vb { font-size:10pt; font-family:courier }
.tabLabelOn { font-weight:bold }
.tabLabelOff {color: darkgray }
.literal-placeholder {color: darkblue; font-weight:bold}
A:link { color: black; }
A:visited { color: black; }
A:active { color: black; }
A:hover { color: blue }
</style>
<script>
function clearForm ()
{
document.getElementById("testFormResult").style.display="none";
}
</script>
</head>
<body>
<div class="title" style="margin-left:20px">
<span class="label">Web Service</span><br>
<%=WebServiceName%>
</div>
<!--
**********************************************************
Left panel
-->
<table border="0" width="100%" cellpadding="15px" cellspacing="15px">
<tr valign="top"><td width="150px" class="panel">
<div style="width:150px"></div>
<a class="method" href='<%=PageName%>'>Overview</a><br>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("wsdl")%>'>Service Description</a>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("proxy")%>'>Client proxy</a>
<br><br>
<asp:repeater id="BindingsRepeater" runat=server>
<itemtemplate name="itemtemplate">
<span class="bindingLabel"><%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%></span>
<asp:repeater id="OperationsRepeater" runat=server datasource='<%# ((Binding)Container.DataItem).Operations %>'>
<itemtemplate>
<a class="method" href="<%=PageName%>?<%=GetTabContext("op",null)%>op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%></a>
<div class="smallSeparator"></div>
</itemtemplate>
</asp:repeater>
<br>
</itemtemplate>
</asp:repeater>
</td><td class="panel">
<% if (CurrentPage == "main") {%>
<!--
**********************************************************
Web service overview
-->
<p class="label">Web Service Overview</p>
<%=WebServiceDescription%>
<%} if (DefaultBinding == null) {%>
This service does not contain any public web method.
<%} else if (CurrentPage == "op") {%>
<!--
**********************************************************
Operation description
-->
<span class="operationTitle"><%=CurrentOperationName%></span>
<br><br>
<% WriteTabs (); %>
<br><br><br>
<% if (CurrentTab == "main") { %>
<span class="label">Input Parameters</span>
<div class="smallSeparator"></div>
<% if (InParams.Count == 0) { %>
No input parameters<br>
<% } else { %>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="InputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<% } %>
<br>
<% if (OutParams.Count > 0) { %>
<span class="label">Output Parameters</span>
<div class="smallSeparator"></div>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="OutputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<br>
<% } %>
<span class="label">Remarks</span>
<div class="smallSeparator"></div>
<%=OperationDocumentation%>
<br><br>
<span class="label">Technical information</span>
<div class="smallSeparator"></div>
Format: <%=CurrentOperationFormat%>
<br>Supported protocols: <%=CurrentOperationProtocols%>
<% } %>
<!--
**********************************************************
Operation description - Test form
-->
<% if (CurrentTab == "test") {
if (CurrentOperationSupportsTest) {%>
Enter values for the parameters and click the 'Invoke' button to test this method:<br><br>
<form action="<%=PageName%>" method="GET">
<input type="hidden" name="page" value="<%=CurrentPage%>">
<input type="hidden" name="tab" value="<%=CurrentTab%>">
<input type="hidden" name="op" value="<%=CurrentOperationName%>">
<input type="hidden" name="bnd" value="<%=CurrentOperationBinding%>">
<input type="hidden" name="ext" value="testform">
<table class="paramFormTable" cellspacing="0" cellpadding="3">
<asp:repeater id="InputFormParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Name")%>:&nbsp;</td>
<td width="150"><input class="paramInput" type="text" size="20" name="<%#DataBinder.Eval(Container.DataItem, "Name")%>"></td>
</tr>
</itemtemplate>
</asp:repeater>
<tr><td></td><td><input class="button" type="submit" value="Invoke">&nbsp;<input class="button" type="button" onclick="clearForm()" value="Clear"></td></tr>
</table>
</form>
<div id="testFormResult" style="display:<%= (HasFormResult?"block":"none") %>">
The web service returned the following result:<br/><br/>
<div class="codePanel"><%=GetTestResult()%></div>
</div>
<% } else {%>
The test form is not available for this operation because it has parameters with a complex structure.
<% } %>
<% } %>
<!--
**********************************************************
Operation description - Message Layout
-->
<% if (CurrentTab == "msg") { %>
The following are sample SOAP requests and responses for each protocol supported by this method:
<br/><br/>
<% if (IsOperationSupported ("Soap")) { %>
<span class="label">Soap</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpGet")) { %>
<span class="label">HTTP Get</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpPost")) { %>
<span class="label">HTTP Post</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", false)%></div></div>
<br/>
<% } %>
<% } %>
<%} else if (CurrentPage == "proxy") {%>
<!--
**********************************************************
Client Proxy
-->
<form action="<%=PageName%>" name="langForm" method="GET">
Select the language for which you want to generate a proxy
<input type="hidden" name="page" value="<%=CurrentPage%>">&nbsp;
<SELECT name="lang" onchange="langForm.submit()">
<%=GetOptionSel("cs",CurrentLanguage)%>C#</option>
<%=GetOptionSel("vb",CurrentLanguage)%>Visual Basic</option>
</SELECT>
&nbsp;&nbsp;
</form>
<br>
<span class="label"><%=CurrentProxytName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?code=" + CurrentLanguage%>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-<%=CurrentLanguage%>"><%=GetProxyCode ()%></div>
</div>
<%} else if (CurrentPage == "wsdl") {%>
<!--
**********************************************************
Service description
-->
<% if (descriptions.Count > 1 || schemas.Count > 1) {%>
The description of this web service is composed by several documents. Click on the document you want to see:
<ul>
<%
for (int n=0; n<descriptions.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=wsdl&docind=" + n + "'>WSDL document " + descriptions[n].TargetNamespace + "</a></li>");
for (int n=0; n<schemas.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=schema&docind=" + n + "'>Xml Schema " + schemas[n].TargetNamespace + "</a></li>");
%>
</ul>
<%} else {%>
<%}%>
<br>
<span class="label"><%=CurrentDocumentName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?" + CurrentDocType + "=" + CurrentDocInd %>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-xml"><%=GenerateDocument ()%></div>
</div>
<%}%>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</td>
<td width="20px"></td>
</tr>
</table>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<section name="system.windows.forms" type="System.Configuration.IgnoreSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.web">
<section name="httpHandlers"
type="System.Web.Configuration.HttpHandlersSectionHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules"
type="System.Web.Configuration.HttpModulesConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="machineKey"
type="System.Web.Configuration.MachineKeyConfigHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="authentication"
type="System.Web.Configuration.AuthenticationConfigHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="authorization"
type="System.Web.Configuration.AuthorizationConfigHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="globalization"
type="System.Web.Configuration.GlobalizationConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="sessionState"
type="System.Web.SessionState.SessionStateSectionHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="trace"
type="System.Web.Configuration.TraceConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webServices"
type="System.Web.Services.Configuration.WebServicesConfigurationSectionHandler, System.Web.Services, Version=1.0.5000.0 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webControls"
type="System.Web.Configuration.WebControlsSectionHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="compilation"
type="System.Web.Configuration.CompilationConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpRuntime"
type="System.Web.Configuration.HttpRuntimeConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="customErrors"
type="System.Web.Configuration.CustomErrorsConfigHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="pages"
type="System.Web.Configuration.PagesConfigurationHandler, System.Web, Version=1.0.5000.0, Culture=neutral" />
<section name="clientTarget"
type="System.Web.Configuration.ClientTargetSectionHandler, System.Web, Version=1.0.5000.0, Culture=neutral" />
</sectionGroup>
<sectionGroup name="system.net">
<section name="settings"
type="System.Net.Configuration.NetConfigurationHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="connectionManagement"
type="System.Net.Configuration.ConnectionManagementHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="authenticationModules"
type="System.Net.Configuration.NetAuthenticationModuleHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="defaultProxy"
type="System.Net.Configuration.DefaultProxyHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webRequestModules"
type="System.Net.Configuration.WebRequestModuleHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.drawing" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<system.net>
<connectionManagement>
<add address="*" maxconnection="2" />
</connectionManagement>
<authenticationModules>
<add type="System.Net.BasicClient, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.DigestClient, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.NtlmClient, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</authenticationModules>
<defaultProxy>
<proxy
usesystemdefault = "true"
bypassonlocal = "true"
/>
<!-- proxyaddress can also be set -->
</defaultProxy>
<webRequestModules>
<add prefix="http" type="System.Net.HttpRequestCreator, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="https" type="System.Net.HttpRequestCreator, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="file" type="System.Net.FileWebRequestCreator, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</webRequestModules>
<settings>
<ipv6 enabled="true"/>
</settings>
</system.net>
<system.web>
<httpHandlers>
<add verb="*" path="Trace.axd" type="System.Web.Handlers.TraceHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.Config" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.dll" type="System.Web.HttpForbiddenHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
<httpModules>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="Session" type="System.Web.SessionState.SessionStateModule, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule, System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpModules>
<authentication mode="Forms">
<forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<!--<user name="gonzalo" password="gonz"/>-->
</credentials>
</forms>
</authentication>
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"/>
<!--
culture="en-US"
uiculture="en-US" />
-->
<sessionState mode="InProc" />
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
</webServices>
<webControls clientScriptsLocation="/web_scripts" />
<compilation debug="false" defaultLanguage="c#" explicit="true" strict="false" >
<compilers>
<compiler language="cs;c#;csharp" extension=".cs" warningLevel="1" compilerOptions=""
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
warningLevel="1" compilerOptions=""
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilers>
<assemblies>
<!--<add assembly="mscorlib" /> -->
<add assembly="System" />
<add assembly="System.Xml" />
<add assembly="System.Data" />
<add assembly="System.Web" />
<add assembly="System.Web.Services" />
<add assembly="System.Drawing" />
<add assembly="*" /> <!-- Add assemblies in bin directory -->
</assemblies>
</compilation>
<!--
RequestLengthDiskThreshold is a 2.0 feature that we
enable for 1.x too.
-->
<httpRuntime executionTimeout="90"
maxRequestLength="4096"
requestLengthDiskThreshold="256"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100" />
<pages buffer="true"
enableSessionState="true"
autoEventWireup="true"
validateRequest="true" />
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="downlevel" userAgent="Unknown" />
</clientTarget>
</system.web>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http client" displayName="http client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="tcp client" displayName="tcp client (delay loaded)" delayLoadAsClientChannel="true" />
</channels>
</application>
<channels>
<channel id="http" type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http client" type="System.Runtime.Remoting.Channels.Http.HttpClientChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http server" type="System.Runtime.Remoting.Channels.Http.HttpServerChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp" type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp client" type="System.Runtime.Remoting.Channels.Tcp.TcpClientChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp server" type="System.Runtime.Remoting.Channels.Tcp.TcpServerChannel, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</channels>
<channelSinkProviders>
<clientProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</clientProviders>
<serverProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<provider id="wsdl" type="System.Runtime.Remoting.MetadataServices.SdlChannelSinkProvider, System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</serverProviders>
</channelSinkProviders>
</system.runtime.remoting>
<appSettings>
<!--<add key="yourkey" value="your value" /> -->
<!--<remove key="a key defined higher in the hierarchy" /> -->
<!--<clear/> Removes all defined settings -->
</appSettings>
<system.diagnostics>
<trace autoflush="false" indentsize="4" />
</system.diagnostics>
<system.drawing>
</system.drawing>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass monoMD2="Mono.Security.Cryptography.MD2Managed, Mono.Security, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
</cryptoClasses>
<nameEntry name="MD2" class="monoMD2" />
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.2.840.113549.2.2" name="MD2" />
<oidEntry OID="1.2.840.113549.2.2" name="Mono.Security.Cryptography.MD2Managed" />
</oidMap>
</cryptographySettings>
</mscorlib>
<strongNames>
<pubTokenMapping>
<!-- ECMA key -->
<map Token="b77a5c561934e089" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (final) key -->
<map Token="b03f5f7f11d50a3a" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (Web Service Enhancement) key -->
<map Token="31bf3856ad364e35" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- IBM (DB2 Data Provider) key -->
<map Token="7c307b91aa13d208" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Silverlight 2.0 key -->
<map Token="7cec85d7bea7798e" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
</pubTokenMapping>
</strongNames>
</configuration>
<!--
This file defines some of the browsers that Microsoft's implementation provides in
<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers\*.browser
It is not derived from any file distributed with Microsoft's implementation. Since
we can't distribute MS's browser files, we use browscap.ini to determine
browser capabilities. Then, if and only if the application contains App_Browser/*.browser
files and we are using .NET 2.0 or higher, we supplement the capabilities with the
information in those files and the files in this directory. The primary goal of this file
is provide browser definitions that might be referenced in App_Browser/*.browser files.
-->
<browsers>
<defaultBrowser id="Default">
</defaultBrowser>
<browser id="Default">
<identification>
<userAgent match="." />
</identification>
</browser>
<browser id="IE6to9" parentID="Default">
<identification>
<capability name="majorver" match="^[6-9]" />
<capability name="browser" match="^(IE|AOL)$" />
</identification>
</browser>
<browser id="Opera8to9" parentID="Default">
<identification>
<capability name="majorver" match="^[8-9]" />
<capability name="browser" match="^Opera$" />
</identification>
</browser>
<browser id="Safari" parentID="Default">
<identification>
<capability name="browser" match="^Safari$" />
</identification>
</browser>
<browser id="Mozilla" parentID="Default">
<identification>
<capability name="browser" match="^Mozilla" />
</identification>
</browser>
</browsers>
\ No newline at end of file
<%--
//
// DefaultWsdlHelpGenerator.aspx:
//
// Author:
// Lluis Sanchez Gual (lluis@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
//
--%>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml.Serialization" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Services.Description" %>
<%@ Import Namespace="System.Web.Services.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Resources" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.CodeDom" %>
<%@ Import Namespace="System.CodeDom.Compiler" %>
<%@ Import Namespace="Microsoft.CSharp" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<%@ Assembly name="System.Web.Services" %>
<%@ Page debug="true" %>
<html>
<script language="C#" runat="server">
ServiceDescriptionCollection descriptions;
XmlSchemas schemas;
string WebServiceName;
string WebServiceDescription;
string PageName;
string DefaultBinding;
ArrayList ServiceProtocols;
string CurrentOperationName;
string CurrentOperationBinding;
string OperationDocumentation;
string CurrentOperationFormat;
bool CurrentOperationSupportsTest;
ArrayList InParams;
ArrayList OutParams;
string CurrentOperationProtocols;
int CodeTextColumns = 95;
BasicProfileViolationCollection ProfileViolations;
void Page_Load(object sender, EventArgs e)
{
descriptions = (ServiceDescriptionCollection) Context.Items["wsdls"];
schemas = (XmlSchemas) Context.Items["schemas"];
ServiceDescription desc = descriptions [0];
if (schemas.Count == 0) schemas = desc.Types.Schemas;
Service service = desc.Services[0];
WebServiceName = service.Name;
if (desc.Bindings.Count == 0)
return;
DefaultBinding = desc.Bindings[0].Name;
WebServiceDescription = service.Documentation;
if (WebServiceDescription == "" || WebServiceDescription == null)
WebServiceDescription = "Description has not been provided";
ServiceProtocols = FindServiceProtocols (null);
CurrentOperationName = Request.QueryString["op"];
CurrentOperationBinding = Request.QueryString["bnd"];
if (CurrentOperationName != null) BuildOperationInfo ();
PageName = HttpUtility.UrlEncode (Path.GetFileName(Request.Path), Encoding.UTF8);
ArrayList list = new ArrayList ();
foreach (ServiceDescription sd in descriptions) {
foreach (Binding bin in sd.Bindings)
if (bin.Extensions.Find (typeof(SoapBinding)) != null) list.Add (bin);
}
BindingsRepeater.DataSource = list;
Page.DataBind();
ProfileViolations = new BasicProfileViolationCollection ();
foreach (WsiProfilesElement claims in ((WebServicesSection) WebConfigurationManager.GetSection("system.web/webServices")).ConformanceWarnings)
if (claims.Name != WsiProfiles.None)
WebServicesInteroperability.CheckConformance (claims.Name, descriptions, ProfileViolations);
}
void BuildOperationInfo ()
{
InParams = new ArrayList ();
OutParams = new ArrayList ();
Port port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
OperationDocumentation = oper.Documentation;
if (OperationDocumentation == null || OperationDocumentation == "")
OperationDocumentation = "No additional remarks";
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput)
BuildParameters (InParams, opm);
else if (opm is OperationOutput)
BuildParameters (OutParams, opm);
}
// Protocols supported by the operation
CurrentOperationProtocols = "";
WebServiceProtocols testProtocols = 0;
ArrayList prots = FindServiceProtocols (CurrentOperationName);
for (int n=0; n<prots.Count; n++) {
string prot = (string) prots [n];
if (n != 0) CurrentOperationProtocols += ", ";
CurrentOperationProtocols += prot;
if (prot == "HttpGet")
testProtocols |= WebServiceProtocols.HttpGet;
else if (prot == "HttpPost") {
testProtocols |= WebServiceProtocols.HttpPost;
if (Context.Request.IsLocal)
testProtocols |= WebServiceProtocols.HttpPostLocalhost;
}
}
CurrentOperationSupportsTest = (WebServicesSection.Current.EnabledProtocols & testProtocols) != 0;
// Operation format
OperationBinding obin = FindOperation (binding, CurrentOperationName);
if (obin != null)
CurrentOperationFormat = GetOperationFormat (obin);
InputParamsRepeater.DataSource = InParams;
InputFormParamsRepeater.DataSource = InParams;
OutputParamsRepeater.DataSource = OutParams;
}
void BuildParameters (ArrayList list, OperationMessage opm)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
XmlSchemaComplexType ctype;
if (part.Element == XmlQualifiedName.Empty)
{
ctype = (XmlSchemaComplexType) schemas.Find (part.Type, typeof(XmlSchemaComplexType));
}
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
ctype = (XmlSchemaComplexType) elem.SchemaType;
}
XmlSchemaSequence seq = ctype.Particle as XmlSchemaSequence;
if (seq == null) return;
foreach (XmlSchemaObject ob in seq.Items)
{
Parameter p = new Parameter();
p.Description = "No additional remarks";
if (ob is XmlSchemaElement)
{
XmlSchemaElement selem = GetRefElement ((XmlSchemaElement)ob);
p.Name = selem.Name;
p.Type = selem.SchemaTypeName.Name;
}
else
{
p.Name = "Unknown";
p.Type = "Unknown";
}
list.Add (p);
}
}
else
{
foreach (MessagePart part in msg.Parts)
{
Parameter p = new Parameter ();
p.Description = "No additional remarks";
p.Name = part.Name;
if (part.Element == XmlQualifiedName.Empty)
p.Type = part.Type.Name;
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
p.Type = elem.SchemaTypeName.Name;
}
list.Add (p);
}
}
}
string GetOperationFormat (OperationBinding obin)
{
string format = "";
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
format = sob.Style.ToString ();
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
format += " / " + sbb.Use;
}
return format;
}
XmlSchemaElement GetRefElement (XmlSchemaElement elem)
{
if (!elem.RefName.IsEmpty)
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
else
return elem;
}
ArrayList FindServiceProtocols(string operName)
{
ArrayList table = new ArrayList ();
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
string prot = null;
Binding bin = descriptions.GetBinding (port.Binding);
if (bin.Extensions.Find (typeof(SoapBinding)) != null)
prot = "Soap";
else
{
HttpBinding hb = (HttpBinding) bin.Extensions.Find (typeof(HttpBinding));
if (hb != null && hb.Verb == "POST") prot = "HttpPost";
else if (hb != null && hb.Verb == "GET") prot = "HttpGet";
}
if (prot != null && operName != null)
{
if (FindOperation (bin, operName) == null)
prot = null;
}
if (prot != null && !table.Contains (prot))
table.Add (prot);
}
return table;
}
Port FindPort (string portName, string protocol)
{
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
if (portName == null)
{
Binding binding = descriptions.GetBinding (port.Binding);
if (GetProtocol (binding) == protocol) return port;
}
else if (port.Name == portName)
return port;
}
return null;
}
string GetProtocol (Binding binding)
{
if (binding.Extensions.Find (typeof(SoapBinding)) != null) return "Soap";
HttpBinding hb = (HttpBinding) binding.Extensions.Find (typeof(HttpBinding));
if (hb == null) return "";
if (hb.Verb == "POST") return "HttpPost";
if (hb.Verb == "GET") return "HttpGet";
return "";
}
Operation FindOperation (PortType portType, string name)
{
foreach (Operation oper in portType.Operations) {
if (oper.Messages.Input.Name != null) {
if (oper.Messages.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
OperationBinding FindOperation (Binding binding, string name)
{
foreach (OperationBinding oper in binding.Operations) {
if (oper.Input.Name != null) {
if (oper.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
string FormatBindingName (string name)
{
if (name == DefaultBinding) return "Methods";
else return "Methods for binding<br>" + name;
}
string GetOpName (object op)
{
OperationBinding ob = op as OperationBinding;
if (ob == null) return "";
if (ob.Input.Name != null) return ob.Input.Name;
else return ob.Name;
}
bool HasFormResult
{
get { return Request.QueryString ["ext"] == "testform"; }
}
class NoCheckCertificatePolicy : ICertificatePolicy {
public bool CheckValidationResult (ServicePoint a, X509Certificate b, WebRequest c, int d)
{
return true;
}
}
string GetOrPost ()
{
return (CurrentOperationProtocols.IndexOf ("HttpGet") >= 0) ? "GET" : "POST";
}
string GetQS ()
{
bool fill = false;
string qs = "";
NameValueCollection query_string = Request.QueryString;
for (int n = 0; n < query_string.Count; n++) {
if (fill) {
if (qs != "") qs += "&";
qs += query_string.GetKey(n) + "=" + Server.UrlEncode (query_string [n]);
}
if (query_string.GetKey(n) == "ext") fill = true;
}
return qs;
}
string GetTestResultUrl ()
{
if (!HasFormResult) return "";
string location = null;
ServiceDescription desc = descriptions [0];
Service service = desc.Services[0];
foreach (Port port in service.Ports)
if (port.Name == CurrentOperationBinding)
{
SoapAddressBinding sbi = (SoapAddressBinding) port.Extensions.Find (typeof(SoapAddressBinding));
if (sbi != null)
location = sbi.Location;
}
if (location == null)
return "Could not locate web service";
return location + "/" + CurrentOperationName;
}
string GenerateOperationMessages (string protocol, bool generateInput)
{
if (!IsOperationSupported (protocol)) return "";
Port port;
if (protocol != "Soap") port = FindPort (null, protocol);
else port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
OperationBinding obin = FindOperation (binding, CurrentOperationName);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
HtmlSampleGenerator sg = new HtmlSampleGenerator (descriptions, schemas);
string txt = sg.GenerateMessage (port, obin, oper, protocol, generateInput);
if (protocol == "Soap") txt = WrapText (txt,CodeTextColumns);
txt = ColorizeXml (txt);
txt = txt.Replace ("@placeholder!","<span class='literal-placeholder'>");
txt = txt.Replace ("!placeholder@","</span>");
return txt;
}
bool IsOperationSupported (string protocol)
{
if (CurrentPage != "op" || CurrentTab != "msg") return false;
if (protocol == "Soap") return true;
Port port = FindPort (null, protocol);
if (port == null) return false;
Binding binding = descriptions.GetBinding (port.Binding);
if (binding == null) return false;
return FindOperation (binding, CurrentOperationName) != null;
}
//
// Proxy code generation
//
string GetProxyCode ()
{
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add (codeNamespace);
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
foreach (ServiceDescription sd in descriptions)
importer.AddServiceDescription(sd, null, null);
foreach (XmlSchema sc in schemas)
importer.Schemas.Add (sc);
importer.Import(codeNamespace, codeUnit);
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
CodeDomProvider provider = GetProvider (langId);
ICodeGenerator generator = provider.CreateGenerator();
CodeGeneratorOptions options = new CodeGeneratorOptions();
StringWriter sw = new StringWriter ();
generator.GenerateCodeFromCompileUnit(codeUnit, sw, options);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), langId);
}
public string CurrentLanguage
{
get {
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
return langId;
}
}
public string CurrentProxytName
{
get {
string lan = CurrentLanguage == "cs" ? "C#" : "Visual Basic";
return lan + " Client Proxy";
}
}
private CodeDomProvider GetProvider(string langId)
{
switch (langId.ToUpper())
{
case "CS": return new CSharpCodeProvider();
case "VB": return new VBCodeProvider();
default: return null;
}
}
//
// Document generation
//
string GenerateDocument ()
{
StringWriter sw = new StringWriter ();
if (CurrentDocType == "wsdl")
descriptions [CurrentDocInd].Write (sw);
else if (CurrentDocType == "schema")
schemas [CurrentDocInd].Write (sw);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), "xml");
}
public string CurrentDocType
{
get { return Request.QueryString ["doctype"] != null ? Request.QueryString ["doctype"] : "wsdl"; }
}
public int CurrentDocInd
{
get { return Request.QueryString ["docind"] != null ? int.Parse (Request.QueryString ["docind"]) : 0; }
}
public string CurrentDocumentName
{
get {
if (CurrentDocType == "wsdl")
return "WSDL document for namespace \"" + descriptions [CurrentDocInd].TargetNamespace + "\"";
else
return "Xml Schema for namespace \"" + schemas [CurrentDocInd].TargetNamespace + "\"";
}
}
//
// Pages and tabs
//
bool firstTab = true;
ArrayList disabledTabs = new ArrayList ();
string CurrentTab
{
get { return Request.QueryString["tab"] != null ? Request.QueryString["tab"] : "main" ; }
}
string CurrentPage
{
get { return Request.QueryString["page"] != null ? Request.QueryString["page"] : "main" ; }
}
void WriteTabs ()
{
if (CurrentOperationName != null)
{
WriteTab ("main","Overview");
WriteTab ("test","Test Form");
WriteTab ("msg","Message Layout");
}
}
void WriteTab (string id, string label)
{
if (!firstTab) Response.Write("&nbsp;|&nbsp;");
firstTab = false;
string cname = CurrentTab == id ? "tabLabelOn" : "tabLabelOff";
Response.Write ("<a href='" + PageName + "?" + GetPageContext(null) + GetDataContext() + "tab=" + id + "' style='text-decoration:none'>");
Response.Write ("<span class='" + cname + "'>" + label + "</span>");
Response.Write ("</a>");
}
string GetTabContext (string pag, string tab)
{
if (tab == null) tab = CurrentTab;
if (pag == null) pag = CurrentPage;
if (pag != CurrentPage) tab = "main";
return "page=" + pag + "&tab=" + tab + "&";
}
string GetPageContext (string pag)
{
if (pag == null) pag = CurrentPage;
return "page=" + pag + "&";
}
class Tab
{
public string Id;
public string Label;
}
//
// Syntax coloring
//
static string keywords_cs =
"(\\babstract\\b|\\bevent\\b|\\bnew\\b|\\bstruct\\b|\\bas\\b|\\bexplicit\\b|\\bnull\\b|\\bswitch\\b|\\bbase\\b|\\bextern\\b|" +
"\\bobject\\b|\\bthis\\b|\\bbool\\b|\\bfalse\\b|\\boperator\\b|\\bthrow\\b|\\bbreak\\b|\\bfinally\\b|\\bout\\b|\\btrue\\b|" +
"\\bbyte\\b|\\bfixed\\b|\\boverride\\b|\\btry\\b|\\bcase\\b|\\bfloat\\b|\\bparams\\b|\\btypeof\\b|\\bcatch\\b|\\bfor\\b|" +
"\\bprivate\\b|\\buint\\b|\\bchar\\b|\\bforeach\\b|\\bprotected\\b|\\bulong\\b|\\bchecked\\b|\\bgoto\\b|\\bpublic\\b|" +
"\\bunchecked\\b|\\bclass\\b|\\bif\\b|\\breadonly\\b|\\bunsafe\\b|\\bconst\\b|\\bimplicit\\b|\\bref\\b|\\bushort\\b|" +
"\\bcontinue\\b|\\bin\\b|\\breturn\\b|\\busing\\b|\\bdecimal\\b|\\bint\\b|\\bsbyte\\b|\\bvirtual\\b|\\bdefault\\b|" +
"\\binterface\\b|\\bsealed\\b|\\bvolatile\\b|\\bdelegate\\b|\\binternal\\b|\\bshort\\b|\\bvoid\\b|\\bdo\\b|\\bis\\b|" +
"\\bsizeof\\b|\\bwhile\\b|\\bdouble\\b|\\block\\b|\\bstackalloc\\b|\\belse\\b|\\blong\\b|\\bstatic\\b|\\benum\\b|" +
"\\bnamespace\\b|\\bstring\\b)";
static string keywords_vb =
"(\\bAddHandler\\b|\\bAddressOf\\b|\\bAlias\\b|\\bAnd\\b|\\bAndAlso\\b|\\bAnsi\\b|\\bAs\\b|\\bAssembly\\b|" +
"\\bAuto\\b|\\bBoolean\\b|\\bByRef\\b|\\bByte\\b|\\bByVal\\b|\\bCall\\b|\\bCase\\b|\\bCatch\\b|" +
"\\bCBool\\b|\\bCByte\\b|\\bCChar\\b|\\bCDate\\b|\\bCDec\\b|\\bCDbl\\b|\\bChar\\b|\\bCInt\\b|" +
"\\bClass\\b|\\bCLng\\b|\\bCObj\\b|\\bConst\\b|\\bCShort\\b|\\bCSng\\b|\\bCStr\\b|\\bCType\\b|" +
"\\bDate\\b|\\bDecimal\\b|\\bDeclare\\b|\\bDefault\\b|\\bDelegate\\b|\\bDim\\b|\\bDirectCast\\b|\\bDo\\b|" +
"\\bDouble\\b|\\bEach\\b|\\bElse\\b|\\bElseIf\\b|\\bEnd\\b|\\bEnum\\b|\\bErase\\b|\\bError\\b|" +
"\\bEvent\\b|\\bExit\\b|\\bFalse\\b|\\bFinally\\b|\\bFor\\b|\\bFriend\\b|\\bFunction\\b|\\bGet\\b|" +
"\\bGetType\\b|\\bGoSub\\b|\\bGoTo\\b|\\bHandles\\b|\\bIf\\b|\\bImplements\\b|\\bImports\\b|\\bIn\\b|" +
"\\bInherits\\b|\\bInteger\\b|\\bInterface\\b|\\bIs\\b|\\bLet\\b|\\bLib\\b|\\bLike\\b|\\bLong\\b|" +
"\\bLoop\\b|\\bMe\\b|\\bMod\\b|\\bModule\\b|\\bMustInherit\\b|\\bMustOverride\\b|\\bMyBase\\b|\\bMyClass\\b|" +
"\\bNamespace\\b|\\bNew\\b|\\bNext\\b|\\bNot\\b|\\bNothing\\b|\\bNotInheritable\\b|\\bNotOverridable\\b|\\bObject\\b|" +
"\\bOn\\b|\\bOption\\b|\\bOptional\\b|\\bOr\\b|\\bOrElse\\b|\\bOverloads\\b|\\bOverridable\\b|\\bOverrides\\b|" +
"\\bParamArray\\b|\\bPreserve\\b|\\bPrivate\\b|\\bProperty\\b|\\bProtected\\b|\\bPublic\\b|\\bRaiseEvent\\b|\\bReadOnly\\b|" +
"\\bReDim\\b|\\bREM\\b|\\bRemoveHandler\\b|\\bResume\\b|\\bReturn\\b|\\bSelect\\b|\\bSet\\b|\\bShadows\\b|" +
"\\bShared\\b|\\bShort\\b|\\bSingle\\b|\\bStatic\\b|\\bStep\\b|\\bStop\\b|\\bString\\b|\\bStructure\\b|" +
"\\bSub\\b|\\bSyncLock\\b|\\bThen\\b|\\bThrow\\b|\\bTo\\b|\\bTrue\\b|\\bTry\\b|\\bTypeOf\\b|" +
"\\bUnicode\\b|\\bUntil\\b|\\bVariant\\b|\\bWhen\\b|\\bWhile\\b|\\bWith\\b|\\bWithEvents\\b|\\bWriteOnly\\b|\\bXor\\b)";
string Colorize (string text, string lang)
{
if (lang == "xml") return ColorizeXml (text);
else if (lang == "cs") return ColorizeCs (text);
else if (lang == "vb") return ColorizeVb (text);
else return text;
}
string ColorizeXml (string text)
{
text = text.Replace (" ", "&nbsp;");
Regex re = new Regex ("\r\n|\r|\n");
text = re.Replace (text, "_br_");
re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
text = re.Replace (text,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = new Regex ("\\{(\\w*):([\\s\\S]*?)\\}");
text = re.Replace (text,"<span style='color:$1'>$2</span>");
re = new Regex ("\"(.*?)\"");
text = re.Replace (text,"\"<span style='color:purple'>$1</span>\"");
text = text.Replace ("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("_br_", "<br>");
return text;
}
string ColorizeCs (string text)
{
text = text.Replace (" ", "&nbsp;");
text = text.Replace ("<", "&lt;");
text = text.Replace (">", "&gt;");
Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("//(((.(?!\"</span>))|\"(((?!\").)*)\"</span>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_cs);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
string ColorizeVb (string text)
{
text = text.Replace (" ", "&nbsp;");
/* Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("'(((.(?!\"\\<\\/span\\>))|\"(((?!\").)*)\"\\<\\/span\\>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_vb);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
*/
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
//
// Helper methods and classes
//
string GetDataContext ()
{
return "op=" + CurrentOperationName + "&bnd=" + CurrentOperationBinding + "&";
}
string GetOptionSel (string v1, string v2)
{
string op = "<option ";
if (v1 == v2) op += "selected ";
return op + "value='" + v1 + "'>";
}
string WrapText (string text, int maxChars)
{
text = text.Replace(" />","/>");
string linspace = null;
int lincount = 0;
int breakpos = 0;
int linstart = 0;
bool inquotes = false;
char lastc = ' ';
string sublineIndent = "";
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
for (int n=0; n<text.Length; n++)
{
char c = text [n];
if (c=='\r' || c=='\n' || n==text.Length-1)
{
sb.Append (linspace + sublineIndent + text.Substring (linstart, n-linstart+1));
linspace = null;
lincount = 0;
linstart = n+1;
breakpos = linstart;
sublineIndent = "";
lastc = c;
continue;
}
if (lastc==',' || lastc=='(')
{
if (!inquotes) breakpos = n;
}
if (lincount > maxChars && breakpos >= linstart)
{
if (linspace != null)
sb.Append (linspace + sublineIndent);
sb.Append (text.Substring (linstart, breakpos-linstart));
sb.Append ("\n");
sublineIndent = " ";
lincount = linspace.Length + sublineIndent.Length + (n-breakpos);
linstart = breakpos;
}
if (c==' ' || c=='\t')
{
if (!inquotes)
breakpos = n;
}
else if (c=='"')
{
inquotes = !inquotes;
}
else
if (linspace == null) {
linspace = text.Substring (linstart, n-linstart);
linstart = n;
}
lincount++;
lastc = c;
}
return sb.ToString ();
}
class Parameter
{
string name;
string type;
string description;
public string Name { get { return name; } set { name = value; } }
public string Type { get { return type; } set { type = value; } }
public string Description { get { return description; } set { description = value; } }
}
public class HtmlSampleGenerator: SampleGenerator
{
public HtmlSampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
: base (services, schemas)
{
}
protected override string GetLiteral (string s)
{
return "@placeholder!" + s + "!placeholder@";
}
}
public class SampleGenerator
{
protected ServiceDescriptionCollection descriptions;
protected XmlSchemas schemas;
XmlSchemaElement anyElement;
ArrayList queue;
SoapBindingUse currentUse;
XmlDocument document = new XmlDocument ();
static readonly XmlQualifiedName anyType = new XmlQualifiedName ("anyType",XmlSchema.Namespace);
static readonly XmlQualifiedName arrayType = new XmlQualifiedName ("Array","http://schemas.xmlsoap.org/soap/encoding/");
static readonly XmlQualifiedName arrayTypeRefName = new XmlQualifiedName ("arrayType","http://schemas.xmlsoap.org/soap/encoding/");
const string SoapEnvelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
const string WsdlNamespace = "http://schemas.xmlsoap.org/wsdl/";
const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
class EncodedType
{
public EncodedType (string ns, XmlSchemaElement elem) { Namespace = ns; Element = elem; }
public string Namespace;
public XmlSchemaElement Element;
}
public SampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
{
descriptions = services;
this.schemas = schemas;
queue = new ArrayList ();
}
public string GenerateMessage (Port port, OperationBinding obin, Operation oper, string protocol, bool generateInput)
{
OperationMessage msg = null;
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput && generateInput) msg = opm;
else if (opm is OperationOutput && !generateInput) msg = opm;
}
if (msg == null) return null;
switch (protocol) {
case "Soap": return GenerateHttpSoapMessage (port, obin, oper, msg);
case "HttpGet": return GenerateHttpGetMessage (port, obin, oper, msg);
case "HttpPost": return GenerateHttpPostMessage (port, obin, oper, msg);
}
return "Unknown protocol";
}
public string GenerateHttpSoapMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
SoapAddressBinding sab = port.Extensions.Find (typeof(SoapAddressBinding)) as SoapAddressBinding;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
req += "POST " + new Uri (sab.Location).AbsolutePath + "\n";
req += "SOAPAction: " + sob.SoapAction + "\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
}
req += GenerateSoapMessage (obin, oper, msg);
return req;
}
public string GenerateHttpGetMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location + "?" + BuildQueryString (msg);
req += "GET " + location + "\n";
req += "Host: " + GetLiteral ("string");
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
MimeXmlBinding mxb = (MimeXmlBinding) obin.Output.Extensions.Find (typeof(MimeXmlBinding)) as MimeXmlBinding;
if (mxb == null) return req;
Message message = descriptions.GetMessage (msg.Message);
XmlQualifiedName ename = null;
foreach (MessagePart part in message.Parts)
if (part.Name == mxb.Part) ename = part.Element;
if (ename == null) return req + GetLiteral("string");
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
currentUse = SoapBindingUse.Literal;
WriteRootElementSample (xtw, ename);
xtw.Close ();
req += sw.ToString ();
}
return req;
}
public string GenerateHttpPostMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location;
req += "POST " + location + "\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
req += BuildQueryString (msg);
}
else return GenerateHttpGetMessage (port, obin, oper, msg);
return req;
}
string BuildQueryString (OperationMessage opm)
{
string s = "";
Message msg = descriptions.GetMessage (opm.Message);
foreach (MessagePart part in msg.Parts)
{
if (s.Length != 0) s += "&";
s += part.Name + "=" + GetLiteral (part.Type.Name);
}
return s;
}
public string GenerateSoapMessage (OperationBinding obin, Operation oper, OperationMessage msg)
{
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
SoapBindingStyle style = (sob != null) ? sob.Style : SoapBindingStyle.Document;
MessageBinding msgbin = (msg is OperationInput) ? (MessageBinding) obin.Input : (MessageBinding)obin.Output;
SoapBodyBinding sbb = msgbin.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
SoapBindingUse bodyUse = (sbb != null) ? sbb.Use : SoapBindingUse.Literal;
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument ();
xtw.WriteStartElement ("soap", "Envelope", SoapEnvelopeNamespace);
xtw.WriteAttributeString ("xmlns", "xsi", null, XmlSchema.InstanceNamespace);
xtw.WriteAttributeString ("xmlns", "xsd", null, XmlSchema.Namespace);
if (bodyUse == SoapBindingUse.Encoded)
{
xtw.WriteAttributeString ("xmlns", "soapenc", null, SoapEncodingNamespace);
xtw.WriteAttributeString ("xmlns", "tns", null, msg.Message.Namespace);
}
// Serialize headers
bool writtenHeader = false;
foreach (object ob in msgbin.Extensions)
{
SoapHeaderBinding hb = ob as SoapHeaderBinding;
if (hb == null) continue;
if (!writtenHeader) {
xtw.WriteStartElement ("soap", "Header", SoapEnvelopeNamespace);
writtenHeader = true;
}
WriteHeader (xtw, hb);
}
if (writtenHeader)
xtw.WriteEndElement ();
// Serialize body
xtw.WriteStartElement ("soap", "Body", SoapEnvelopeNamespace);
currentUse = bodyUse;
WriteBody (xtw, oper, msg, sbb, style);
xtw.WriteEndElement ();
xtw.WriteEndElement ();
xtw.Close ();
return sw.ToString ();
}
void WriteHeader (XmlTextWriter xtw, SoapHeaderBinding header)
{
Message msg = descriptions.GetMessage (header.Message);
if (msg == null) throw new InvalidOperationException ("Message " + header.Message + " not found");
MessagePart part = msg.Parts [header.Part];
if (part == null) throw new InvalidOperationException ("Message part " + header.Part + " not found in message " + header.Message);
currentUse = header.Use;
if (currentUse == SoapBindingUse.Literal)
WriteRootElementSample (xtw, part.Element);
else
WriteTypeSample (xtw, part.Type);
}
void WriteBody (XmlTextWriter xtw, Operation oper, OperationMessage opm, SoapBodyBinding sbb, SoapBindingStyle style)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
if (part.Element == XmlQualifiedName.Empty)
WriteTypeSample (xtw, part.Type);
else
WriteRootElementSample (xtw, part.Element);
}
else
{
string elemName = oper.Name;
string ns = "";
if (opm is OperationOutput) elemName += "Response";
if (style == SoapBindingStyle.Rpc) {
xtw.WriteStartElement (elemName, sbb.Namespace);
ns = sbb.Namespace;
}
foreach (MessagePart part in msg.Parts)
{
if (part.Element == XmlQualifiedName.Empty)
{
XmlSchemaElement elem = new XmlSchemaElement ();
elem.SchemaTypeName = part.Type;
elem.Name = part.Name;
WriteElementSample (xtw, ns, elem);
}
else
WriteRootElementSample (xtw, part.Element);
}
if (style == SoapBindingStyle.Rpc)
xtw.WriteEndElement ();
}
WriteQueuedTypeSamples (xtw);
}
void WriteRootElementSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (qname, typeof(XmlSchemaElement));
if (elem == null) throw new InvalidOperationException ("Element not found: " + qname);
WriteElementSample (xtw, qname.Namespace, elem);
}
void WriteElementSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
bool sharedAnnType = false;
XmlQualifiedName root;
if (!elem.RefName.IsEmpty) {
XmlSchemaElement refElem = FindRefElement (elem);
if (refElem == null) throw new InvalidOperationException ("Global element not found: " + elem.RefName);
root = elem.RefName;
elem = refElem;
sharedAnnType = true;
}
else
root = new XmlQualifiedName (elem.Name, ns);
if (!elem.SchemaTypeName.IsEmpty)
{
XmlSchemaComplexType st = FindComplexTyype (elem.SchemaTypeName);
if (st != null)
WriteComplexTypeSample (xtw, st, root);
else
{
xtw.WriteStartElement (root.Name, root.Namespace);
if (currentUse == SoapBindingUse.Encoded)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, elem.SchemaTypeName));
xtw.WriteString (GetLiteral (FindBuiltInType (elem.SchemaTypeName)));
xtw.WriteEndElement ();
}
}
else if (elem.SchemaType == null)
{
xtw.WriteStartElement ("any");
xtw.WriteEndElement ();
}
else
WriteComplexTypeSample (xtw, (XmlSchemaComplexType) elem.SchemaType, root);
}
void WriteTypeSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaComplexType ctype = FindComplexTyype (qname);
if (ctype != null) {
WriteComplexTypeSample (xtw, ctype, qname);
return;
}
XmlSchemaSimpleType stype = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (stype != null) {
WriteSimpleTypeSample (xtw, stype);
return;
}
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
throw new InvalidOperationException ("Type not found: " + qname);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName)
{
WriteComplexTypeSample (xtw, stype, rootName, -1);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName, int id)
{
string ns = rootName.Namespace;
if (rootName.Name.IndexOf ("[]") != -1) rootName = arrayType;
if (currentUse == SoapBindingUse.Encoded) {
string pref = xtw.LookupPrefix (rootName.Namespace);
if (pref == null) pref = "q1";
xtw.WriteStartElement (pref, rootName.Name, rootName.Namespace);
ns = "";
}
else
xtw.WriteStartElement (rootName.Name, rootName.Namespace);
if (id != -1)
{
xtw.WriteAttributeString ("id", "id" + id);
if (rootName != arrayType)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, rootName));
}
WriteComplexTypeAttributes (xtw, stype);
WriteComplexTypeElements (xtw, ns, stype);
xtw.WriteEndElement ();
}
void WriteComplexTypeAttributes (XmlTextWriter xtw, XmlSchemaComplexType stype)
{
WriteAttributes (xtw, stype.Attributes, stype.AnyAttribute);
}
Dictionary<XmlSchemaComplexType,int> recursed_types = new Dictionary<XmlSchemaComplexType,int> ();
void WriteComplexTypeElements (XmlTextWriter xtw, string ns, XmlSchemaComplexType stype)
{
int prev = 0;
if (recursed_types.ContainsKey (stype))
prev = recursed_types [stype];
if (prev > 1)
return;
recursed_types [stype] = ++prev;
if (stype.Particle != null)
WriteParticleComplexContent (xtw, ns, stype.Particle);
else
{
if (stype.ContentModel is XmlSchemaSimpleContent)
WriteSimpleContent (xtw, (XmlSchemaSimpleContent)stype.ContentModel);
else if (stype.ContentModel is XmlSchemaComplexContent)
WriteComplexContent (xtw, ns, (XmlSchemaComplexContent)stype.ContentModel);
}
prev = recursed_types [stype];
recursed_types [stype] = --prev;
}
void WriteAttributes (XmlTextWriter xtw, XmlSchemaObjectCollection atts, XmlSchemaAnyAttribute anyat)
{
foreach (XmlSchemaObject at in atts)
{
if (at is XmlSchemaAttribute)
{
string ns;
XmlSchemaAttribute attr = (XmlSchemaAttribute)at;
XmlSchemaAttribute refAttr = attr;
// refAttr.Form; TODO
if (!attr.RefName.IsEmpty) {
refAttr = FindRefAttribute (attr.RefName);
if (refAttr == null) throw new InvalidOperationException ("Global attribute not found: " + attr.RefName);
}
string val;
if (!refAttr.SchemaTypeName.IsEmpty) val = FindBuiltInType (refAttr.SchemaTypeName);
else val = FindBuiltInType ((XmlSchemaSimpleType) refAttr.SchemaType);
xtw.WriteAttributeString (refAttr.Name, val);
}
else if (at is XmlSchemaAttributeGroupRef)
{
XmlSchemaAttributeGroupRef gref = (XmlSchemaAttributeGroupRef)at;
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
WriteAttributes (xtw, grp.Attributes, grp.AnyAttribute);
}
}
if (anyat != null)
xtw.WriteAttributeString ("custom-attribute","value");
}
void WriteParticleComplexContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle)
{
WriteParticleContent (xtw, ns, particle, false);
}
void WriteParticleContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle, bool multiValue)
{
if (particle is XmlSchemaGroupRef)
particle = GetRefGroupParticle ((XmlSchemaGroupRef)particle);
if (particle.MaxOccurs > 1) multiValue = true;
if (particle is XmlSchemaSequence) {
WriteSequenceContent (xtw, ns, ((XmlSchemaSequence)particle).Items, multiValue);
}
else if (particle is XmlSchemaChoice) {
if (((XmlSchemaChoice)particle).Items.Count == 1)
WriteSequenceContent (xtw, ns, ((XmlSchemaChoice)particle).Items, multiValue);
else
WriteChoiceContent (xtw, ns, (XmlSchemaChoice)particle, multiValue);
}
else if (particle is XmlSchemaAll) {
WriteSequenceContent (xtw, ns, ((XmlSchemaAll)particle).Items, multiValue);
}
}
void WriteSequenceContent (XmlTextWriter xtw, string ns, XmlSchemaObjectCollection items, bool multiValue)
{
foreach (XmlSchemaObject item in items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteContentItem (XmlTextWriter xtw, string ns, XmlSchemaObject item, bool multiValue)
{
if (item is XmlSchemaGroupRef)
item = GetRefGroupParticle ((XmlSchemaGroupRef)item);
if (item is XmlSchemaElement)
{
XmlSchemaElement elem = (XmlSchemaElement) item;
XmlSchemaElement refElem;
if (!elem.RefName.IsEmpty) refElem = FindRefElement (elem);
else refElem = elem;
int num = (elem.MaxOccurs == 1 && !multiValue) ? 1 : 2;
for (int n=0; n<num; n++)
{
if (currentUse == SoapBindingUse.Literal)
WriteElementSample (xtw, ns, refElem);
else
WriteRefTypeSample (xtw, ns, refElem);
}
}
else if (item is XmlSchemaAny)
{
xtw.WriteString (GetLiteral ("xml"));
}
else if (item is XmlSchemaParticle) {
WriteParticleContent (xtw, ns, (XmlSchemaParticle)item, multiValue);
}
}
void WriteChoiceContent (XmlTextWriter xtw, string ns, XmlSchemaChoice choice, bool multiValue)
{
foreach (XmlSchemaObject item in choice.Items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteSimpleContent (XmlTextWriter xtw, XmlSchemaSimpleContent content)
{
XmlSchemaSimpleContentExtension ext = content.Content as XmlSchemaSimpleContentExtension;
if (ext != null)
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
XmlQualifiedName qname = GetContentBaseType (content.Content);
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
}
string FindBuiltInType (XmlQualifiedName qname)
{
if (qname.Namespace == XmlSchema.Namespace)
return qname.Name;
XmlSchemaComplexType ct = FindComplexTyype (qname);
if (ct != null)
{
XmlSchemaSimpleContent sc = ct.ContentModel as XmlSchemaSimpleContent;
if (sc == null) throw new InvalidOperationException ("Invalid schema");
return FindBuiltInType (GetContentBaseType (sc.Content));
}
XmlSchemaSimpleType st = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (st != null)
return FindBuiltInType (st);
throw new InvalidOperationException ("Definition of type " + qname + " not found");
}
string FindBuiltInType (XmlSchemaSimpleType st)
{
if (st.Content is XmlSchemaSimpleTypeRestriction) {
return FindBuiltInType (GetContentBaseType (st.Content));
}
else if (st.Content is XmlSchemaSimpleTypeList) {
string s = FindBuiltInType (GetContentBaseType (st.Content));
return s + " " + s + " ...";
}
else if (st.Content is XmlSchemaSimpleTypeUnion)
{
//Check if all types of the union are equal. If not, then will use anyType.
XmlSchemaSimpleTypeUnion uni = (XmlSchemaSimpleTypeUnion) st.Content;
string utype = null;
// Anonymous types are unique
if (uni.BaseTypes.Count != 0 && uni.MemberTypes.Length != 0)
return "string";
foreach (XmlQualifiedName mt in uni.MemberTypes)
{
string qn = FindBuiltInType (mt);
if (utype != null && qn != utype) return "string";
else utype = qn;
}
return utype;
}
else
return "string";
}
XmlQualifiedName GetContentBaseType (XmlSchemaObject ob)
{
if (ob is XmlSchemaSimpleContentExtension)
return ((XmlSchemaSimpleContentExtension)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleContentRestriction)
return ((XmlSchemaSimpleContentRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeRestriction)
return ((XmlSchemaSimpleTypeRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeList)
return ((XmlSchemaSimpleTypeList)ob).ItemTypeName;
else
return null;
}
void WriteComplexContent (XmlTextWriter xtw, string ns, XmlSchemaComplexContent content)
{
XmlQualifiedName qname;
XmlSchemaComplexContentExtension ext = content.Content as XmlSchemaComplexContentExtension;
if (ext != null) qname = ext.BaseTypeName;
else {
XmlSchemaComplexContentRestriction rest = (XmlSchemaComplexContentRestriction)content.Content;
qname = rest.BaseTypeName;
if (qname == arrayType) {
ParseArrayType (rest, out qname);
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "Item";
elem.SchemaTypeName = qname;
xtw.WriteAttributeString ("arrayType", SoapEncodingNamespace, qname.Name + "[2]");
WriteContentItem (xtw, ns, elem, true);
return;
}
}
// Add base map members to this map
XmlSchemaComplexType ctype = FindComplexTyype (qname);
WriteComplexTypeAttributes (xtw, ctype);
if (ext != null) {
// Add the members of this map
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
if (ext.Particle != null)
WriteParticleComplexContent (xtw, ns, ext.Particle);
}
WriteComplexTypeElements (xtw, ns, ctype);
}
void ParseArrayType (XmlSchemaComplexContentRestriction rest, out XmlQualifiedName qtype)
{
XmlSchemaAttribute arrayTypeAt = FindArrayAttribute (rest.Attributes);
XmlAttribute[] uatts = arrayTypeAt.UnhandledAttributes;
if (uatts == null || uatts.Length == 0) throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
XmlAttribute xat = null;
foreach (XmlAttribute at in uatts)
if (at.LocalName == "arrayType" && at.NamespaceURI == WsdlNamespace)
{ xat = at; break; }
if (xat == null)
throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
string arrayType = xat.Value;
string type, ns;
int i = arrayType.LastIndexOf (":");
if (i == -1) ns = "";
else ns = arrayType.Substring (0,i);
int j = arrayType.IndexOf ("[", i+1);
if (j == -1) throw new InvalidOperationException ("Cannot parse WSDL array type: " + arrayType);
type = arrayType.Substring (i+1);
type = type.Substring (0, type.Length-2);
qtype = new XmlQualifiedName (type, ns);
}
XmlSchemaAttribute FindArrayAttribute (XmlSchemaObjectCollection atts)
{
foreach (object ob in atts)
{
XmlSchemaAttribute att = ob as XmlSchemaAttribute;
if (att != null && att.RefName == arrayTypeRefName) return att;
XmlSchemaAttributeGroupRef gref = ob as XmlSchemaAttributeGroupRef;
if (gref != null)
{
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
att = FindArrayAttribute (grp.Attributes);
if (att != null) return att;
}
}
return null;
}
void WriteSimpleTypeSample (XmlTextWriter xtw, XmlSchemaSimpleType stype)
{
xtw.WriteString (GetLiteral (FindBuiltInType (stype)));
}
XmlSchemaParticle GetRefGroupParticle (XmlSchemaGroupRef refGroup)
{
XmlSchemaGroup grp = (XmlSchemaGroup) schemas.Find (refGroup.RefName, typeof (XmlSchemaGroup));
return grp.Particle;
}
XmlSchemaElement FindRefElement (XmlSchemaElement elem)
{
if (elem.RefName.Namespace == XmlSchema.Namespace)
{
if (anyElement != null) return anyElement;
anyElement = new XmlSchemaElement ();
anyElement.Name = "any";
anyElement.SchemaTypeName = anyType;
return anyElement;
}
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
}
XmlSchemaAttribute FindRefAttribute (XmlQualifiedName refName)
{
if (refName.Namespace == XmlSchema.Namespace)
{
XmlSchemaAttribute at = new XmlSchemaAttribute ();
at.Name = refName.Name;
at.SchemaTypeName = new XmlQualifiedName ("string",XmlSchema.Namespace);
return at;
}
return (XmlSchemaAttribute) schemas.Find (refName, typeof(XmlSchemaAttribute));
}
void WriteRefTypeSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
if (elem.SchemaTypeName.Namespace == XmlSchema.Namespace || schemas.Find (elem.SchemaTypeName, typeof(XmlSchemaSimpleType)) != null)
WriteElementSample (xtw, ns, elem);
else
{
xtw.WriteStartElement (elem.Name, ns);
xtw.WriteAttributeString ("href", "#id" + (queue.Count+1));
xtw.WriteEndElement ();
queue.Add (new EncodedType (ns, elem));
}
}
void WriteQueuedTypeSamples (XmlTextWriter xtw)
{
for (int n=0; n<queue.Count; n++)
{
EncodedType ec = (EncodedType) queue[n];
XmlSchemaComplexType st = FindComplexTyype (ec.Element.SchemaTypeName);
WriteComplexTypeSample (xtw, st, ec.Element.SchemaTypeName, n+1);
}
}
XmlSchemaComplexType FindComplexTyype (XmlQualifiedName qname)
{
if (qname.Name.IndexOf ("[]") != -1)
{
XmlSchemaComplexType stype = new XmlSchemaComplexType ();
stype.ContentModel = new XmlSchemaComplexContent ();
XmlSchemaComplexContentRestriction res = new XmlSchemaComplexContentRestriction ();
stype.ContentModel.Content = res;
res.BaseTypeName = arrayType;
XmlSchemaAttribute att = new XmlSchemaAttribute ();
att.RefName = arrayTypeRefName;
res.Attributes.Add (att);
XmlAttribute xat = document.CreateAttribute ("arrayType", WsdlNamespace);
xat.Value = qname.Namespace + ":" + qname.Name;
att.UnhandledAttributes = new XmlAttribute[] {xat};
return stype;
}
return (XmlSchemaComplexType) schemas.Find (qname, typeof(XmlSchemaComplexType));
}
string GetQualifiedNameString (XmlTextWriter xtw, XmlQualifiedName qname)
{
string pref = xtw.LookupPrefix (qname.Namespace);
if (pref != null) return pref + ":" + qname.Name;
xtw.WriteAttributeString ("xmlns", "q1", null, qname.Namespace);
return "q1:" + qname.Name;
}
protected virtual string GetLiteral (string s)
{
return s;
}
void GetOperationFormat (OperationBinding obin, out SoapBindingStyle style, out SoapBindingUse use)
{
style = SoapBindingStyle.Document;
use = SoapBindingUse.Literal;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
style = sob.Style;
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
use = sbb.Use;
}
}
}
</script>
<head runat="server">
<%
Response.Write ("<link rel=\"alternate\" type=\"text/xml\" href=\"" + Request.FilePath + "?disco\"/>");
%>
<title><%=WebServiceName%> Web Service</title>
<style type="text/css">
BODY { font-family: Arial; margin-left: 20px; margin-top: 20px; font-size: x-small}
TABLE { font-size: x-small }
.title { color:dimgray; font-family: Arial; font-size:20pt; font-weight:900}
.operationTitle { color:dimgray; font-family: Arial; font-size:15pt; font-weight:900}
.method { font-size: x-small }
.bindingLabel { font-size: x-small; font-weight:bold; color:darkgray; line-height:8pt; display:block; margin-bottom:3px }
.label { font-size: small; font-weight:bold; color:darkgray }
.paramTable { font-size: x-small }
.paramTable TR { background-color: gainsboro }
.paramFormTable { font-size: x-small; padding: 10px; background-color: gainsboro }
.paramFormTable TR { background-color: gainsboro }
.paramInput { border: solid 1px gray }
.button {border: solid 1px gray }
.smallSeparator { height:3px; overflow:hidden }
.panel { background-color:whitesmoke; border: solid 1px silver; border-top: solid 1px silver }
.codePanel { background-color: white; font-size:x-small; padding:7px; border:solid 1px silver}
.code-xml { font-size:10pt; font-family:courier }
.code-cs { font-size:10pt; font-family:courier }
.code-vb { font-size:10pt; font-family:courier }
.tabLabelOn { font-weight:bold }
.tabLabelOff {color: darkgray }
.literal-placeholder {color: darkblue; font-weight:bold}
A:link { color: black; }
A:visited { color: black; }
A:active { color: black; }
A:hover { color: blue }
</style>
<script language="javascript" type="text/javascript">
var req;
function getXML (command, url, qs) {
if (url == "" || url.substring (0, 4) != "http")
return;
var post_data = null;
req = getReq ();
req.onreadystatechange = stateChange;
if (command == "GET") {
url = url + "?" + qs;
} else {
post_data = qs;
}
req.open (command, url, true);
if (command == "POST")
req.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
req.send (post_data);
}
function stateChange () {
if (req.readyState == 4) {
var node = document.getElementById("testresult_div");
var text = "";
if (req.status == 200) {
node.innerHTML = "<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
} else {
var ht = "<b style='color: red'>" + formatXml (req.status + " - " + req.statusText) + "</b>";
if (req.responseText != "")
ht = ht + "\n<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
node.innerHTML = ht;
}
}
}
function formatXml (text)
{
var re = / /g;
text = text.replace (re, "&nbsp;");
re = /\t/g;
text = text.replace (re, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
re = /\<\s*(\/?)\s*(.*?)\s*(\/?)\s*\>/g;
text = text.replace (re,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = /{(\w*):(.*?)}/g;
text = text.replace (re,"<span style='color:$1'>$2</span>");
re = /"(.*?)"/g;
text = text.replace (re,"\"<span style='color:purple'>$1</span>\"");
re = /\r\n|\r|\n/g;
text = text.replace (re, "<br/>");
return text;
}
function getReq () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); // Firefox, Safari, ...
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function clearForm ()
{
document.getElementById("testFormResult").style.display="none";
}
</script>
</head>
<body>
<div class="title" style="margin-left:20px">
<span class="label">Web Service</span><br>
<%=WebServiceName%>
</div>
<!--
**********************************************************
Left panel
-->
<table border="0" width="100%" cellpadding="15px" cellspacing="15px">
<tr valign="top"><td width="150px" class="panel">
<div style="width:150px"></div>
<a class="method" href='<%=PageName%>'>Overview</a><br>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("wsdl")%>'>Service Description</a>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("proxy")%>'>Client proxy</a>
<br><br>
<asp:repeater id="BindingsRepeater" runat=server>
<itemtemplate name="itemtemplate">
<span class="bindingLabel"><%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%></span>
<asp:repeater id="OperationsRepeater" runat=server datasource='<%# ((Binding)Container.DataItem).Operations %>'>
<itemtemplate>
<a class="method" href="<%=PageName%>?<%=GetTabContext("op",null)%>op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%></a>
<div class="smallSeparator"></div>
</itemtemplate>
</asp:repeater>
<br>
</itemtemplate>
</asp:repeater>
</td><td class="panel">
<% if (CurrentPage == "main") {%>
<!--
**********************************************************
Web service overview
-->
<p class="label">Web Service Overview</p>
<%=WebServiceDescription%>
<br/><br/>
<% if (ProfileViolations != null && ProfileViolations.Count > 0) { %>
<p class="label">Basic Profile Conformance</p>
This web service does not conform to WS-I Basic Profile v1.1
<%
Response.Write ("<ul>");
foreach (BasicProfileViolation vio in ProfileViolations) {
Response.Write ("<li><b>" + vio.NormativeStatement + "</b>: " + vio.Details);
Response.Write ("<ul>");
foreach (string ele in vio.Elements)
Response.Write ("<li>" + ele + "</li>");
Response.Write ("</ul>");
Response.Write ("</li>");
}
Response.Write ("</ul>");
}%>
<%} if (DefaultBinding == null) {%>
This service does not contain any public web method.
<%} else if (CurrentPage == "op") {%>
<!--
**********************************************************
Operation description
-->
<span class="operationTitle"><%=CurrentOperationName%></span>
<br><br>
<% WriteTabs (); %>
<br><br><br>
<% if (CurrentTab == "main") { %>
<span class="label">Input Parameters</span>
<div class="smallSeparator"></div>
<% if (InParams.Count == 0) { %>
No input parameters<br>
<% } else { %>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="InputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<% } %>
<br>
<% if (OutParams.Count > 0) { %>
<span class="label">Output Parameters</span>
<div class="smallSeparator"></div>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="OutputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<br>
<% } %>
<span class="label">Remarks</span>
<div class="smallSeparator"></div>
<%=OperationDocumentation%>
<br><br>
<span class="label">Technical information</span>
<div class="smallSeparator"></div>
Format: <%=CurrentOperationFormat%>
<br>Supported protocols: <%=CurrentOperationProtocols%>
<% } %>
<!--
**********************************************************
Operation description - Test form
-->
<% if (CurrentTab == "test") {
if (CurrentOperationSupportsTest) {%>
Enter values for the parameters and click the 'Invoke' button to test this method:<br><br>
<form action="<%=PageName%>" method="GET">
<input type="hidden" name="page" value="<%=CurrentPage%>">
<input type="hidden" name="tab" value="<%=CurrentTab%>">
<input type="hidden" name="op" value="<%=CurrentOperationName%>">
<input type="hidden" name="bnd" value="<%=CurrentOperationBinding%>">
<input type="hidden" name="ext" value="testform">
<table class="paramFormTable" cellspacing="0" cellpadding="3">
<asp:repeater id="InputFormParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Name")%>:&nbsp;</td>
<td width="150"><input class="paramInput" type="text" size="20" name="<%#DataBinder.Eval(Container.DataItem, "Name")%>"></td>
</tr>
</itemtemplate>
</asp:repeater>
<tr><td></td><td><input class="button" type="submit" value="Invoke">&nbsp;<input class="button" type="button" onclick="clearForm()" value="Clear"></td></tr>
</table>
</form>
<div id="testFormResult" style="display:<%= (HasFormResult?"block":"none") %>">
The web service returned the following result:<br/><br/>
<div class="codePanel" id="testresult_div">
</div>
<script language="javascript">
getXML ("<%= GetOrPost () %>", "<%= GetTestResultUrl () %>", "<%= GetQS () %>");
</script>
</div>
<% } else {%>
The test form is not available for this operation because it has parameters with a complex structure.
<% } %>
<% } %>
<!--
**********************************************************
Operation description - Message Layout
-->
<% if (CurrentTab == "msg") { %>
The following are sample SOAP requests and responses for each protocol supported by this method:
<br/><br/>
<% if (IsOperationSupported ("Soap")) { %>
<span class="label">Soap</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpGet")) { %>
<span class="label">HTTP Get</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpPost")) { %>
<span class="label">HTTP Post</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", false)%></div></div>
<br/>
<% } %>
<% } %>
<%} else if (CurrentPage == "proxy") {%>
<!--
**********************************************************
Client Proxy
-->
<form action="<%=PageName%>" name="langForm" method="GET">
Select the language for which you want to generate a proxy
<input type="hidden" name="page" value="<%=CurrentPage%>">&nbsp;
<SELECT name="lang" onchange="langForm.submit()">
<%=GetOptionSel("cs",CurrentLanguage)%>C#</option>
<%=GetOptionSel("vb",CurrentLanguage)%>Visual Basic</option>
</SELECT>
&nbsp;&nbsp;
</form>
<br>
<span class="label"><%=CurrentProxytName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?code=" + CurrentLanguage%>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-<%=CurrentLanguage%>"><%=GetProxyCode ()%></div>
</div>
<%} else if (CurrentPage == "wsdl") {%>
<!--
**********************************************************
Service description
-->
<% if (descriptions.Count > 1 || schemas.Count > 1) {%>
The description of this web service is composed by several documents. Click on the document you want to see:
<ul>
<%
for (int n=0; n<descriptions.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=wsdl&docind=" + n + "'>WSDL document " + descriptions[n].TargetNamespace + "</a></li>");
for (int n=0; n<schemas.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=schema&docind=" + n + "'>Xml Schema " + schemas[n].TargetNamespace + "</a></li>");
%>
</ul>
<%} else {%>
<%}%>
<br>
<span class="label"><%=CurrentDocumentName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?" + CurrentDocType + "=" + CurrentDocInd %>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-xml"><%=GenerateDocument ()%></div>
</div>
<%}%>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</td>
<td width="20px"></td>
</tr>
</table>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="configProtectedData" type="System.Configuration.ProtectedConfigurationSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mscorlib" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="runtime" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="assemblyBinding" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="satelliteassemblies" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authorization" type="System.Web.Configuration.AuthorizationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="browserCaps" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="clientTarget" type="System.Web.Configuration.ClientTargetSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="compilation" type="System.Web.Configuration.CompilationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="customErrors" type="System.Web.Configuration.CustomErrorsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" />
<section name="globalization" type="System.Web.Configuration.GlobalizationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="healthMonitoring" type="System.Web.Configuration.HealthMonitoringSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="hostingEnvironment" type="System.Web.Configuration.HostingEnvironmentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="httpCookies" type="System.Web.Configuration.HttpCookiesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpHandlers" type="System.Web.Configuration.HttpHandlersSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules" type="System.Web.Configuration.HttpModulesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpRuntime" type="System.Web.Configuration.HttpRuntimeSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="identity" type="System.Web.Configuration.IdentitySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="machineKey" type="System.Web.Configuration.MachineKeySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="membership" type="System.Web.Configuration.MembershipSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mobileControls" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="deviceFilters" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="pages" type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" allowLocation="false" />
<section name="profile" type="System.Web.Configuration.ProfileSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="roleManager" type="System.Web.Configuration.RoleManagerSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="securityPolicy" type="System.Web.Configuration.SecurityPolicySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="sessionPageState" type="System.Web.Configuration.SessionPageStateSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="sessionState" type="System.Web.Configuration.SessionStateSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="siteMap" type="System.Web.Configuration.SiteMapSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="trace" type="System.Web.Configuration.TraceSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="trust" type="System.Web.Configuration.TrustSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="urlMappings" type="System.Web.Configuration.UrlMappingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="webControls" type="System.Web.Configuration.WebControlsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webParts" type="System.Web.Configuration.WebPartsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webServices" type="System.Web.Services.Configuration.WebServicesSection, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="xhtmlConformance" type="System.Web.Configuration.XhtmlConformanceSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<sectionGroup name="caching" type="System.Web.Configuration.SystemWebCachingSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="cache" type="System.Web.Configuration.CacheSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCache" type="System.Web.Configuration.OutputCacheSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCacheSettings" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="sqlCacheDependency" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
<section name="monoSettings" type="System.Web.Configuration.MonoSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</sectionGroup>
<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="authenticationModules" type="System.Net.Configuration.AuthenticationModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="connectionManagement" type="System.Net.Configuration.ConnectionManagementSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="requestCaching" type="System.Net.Configuration.RequestCachingSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="settings" type="System.Net.Configuration.SettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webRequestModules" type="System.Net.Configuration.WebRequestModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.drawing" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.webServer" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="LocalSqliteServer" connectionString="Data Source=|DataDirectory|/aspnetdb.sqlite;version=3" providerName="Mono.Data.Sqlite"/>
</connectionStrings>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
<providers>
<add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" keyContainerName="MonoFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
<add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" useMachineProtection="true" keyEntropy="" />
</providers>
</configProtectedData>
<system.net>
<authenticationModules>
<add type="System.Net.BasicClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.DigestClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.NtlmClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</authenticationModules>
<webRequestModules>
<add prefix="http" type="System.Net.HttpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="https" type="System.Net.HttpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="file" type="System.Net.FileWebRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="ftp" type="System.Net.FtpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</webRequestModules>
<settings>
<ipv6 enabled="true"/>
</settings>
</system.net>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http client" displayName="http client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="tcp client" displayName="tcp client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="ipc client" displayName="ipc client (delay loaded)" delayLoadAsClientChannel="true" />
</channels>
</application>
<channels>
<channel id="http" type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http client" type="System.Runtime.Remoting.Channels.Http.HttpClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http server" type="System.Runtime.Remoting.Channels.Http.HttpServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp" type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp client" type="System.Runtime.Remoting.Channels.Tcp.TcpClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp server" type="System.Runtime.Remoting.Channels.Tcp.TcpServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc" type="System.Runtime.Remoting.Channels.Ipc.IpcChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc client" type="System.Runtime.Remoting.Channels.Ipc.IpcClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc server" type="System.Runtime.Remoting.Channels.Ipc.IpcServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</channels>
<channelSinkProviders>
<clientProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</clientProviders>
<serverProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<provider id="wsdl" type="System.Runtime.Remoting.MetadataServices.SdlChannelSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</serverProviders>
</channelSinkProviders>
</system.runtime.remoting>
<appSettings>
<!--<add key="yourkey" value="your value" /> -->
<!--<remove key="a key defined higher in the hierarchy" /> -->
<!--<clear/> Removes all defined settings -->
</appSettings>
<system.diagnostics>
<trace autoflush="false" indentsize="4" />
</system.diagnostics>
<system.drawing>
</system.drawing>
<system.data>
<DbProviderFactories>
<add name="Mono Sqlite Data Provider" invariant="Mono.Data.SqliteClient"
description="Mono Framework Data Provider for SQLite (old version)"
type="Mono.Data.SqliteClient.SqliteFactory, Mono.Data.SqliteClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Mono Sqlite Provider" invariant="Mono.Data.Sqlite"
description="Mono Framework Data Provider for SQLite (new version)"
type="Mono.Data.Sqlite.SqliteFactory, Mono.Data.Sqlite, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Odbc Data Provider" invariant="System.Data.Odbc"
description=".Net Framework Data Provider for Odbc"
type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb"
description=".Net Framework Data Provider for OleDb"
type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
description=".Net Framework Data Provider for Oracle"
type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Sybase Data Provider" invariant="Mono.Data.SybaseClient"
description=".Net Framework Data Provider for Sybase"
type="Mono.Data.SybaseClient.SybaseClientFactory, Mono.Data.SybaseClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
</DbProviderFactories>
</system.data>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass monoMD2="Mono.Security.Cryptography.MD2Managed, Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
</cryptoClasses>
<nameEntry name="MD2" class="monoMD2" />
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.2.840.113549.2.2" name="MD2" />
<oidEntry OID="1.2.840.113549.2.2" name="Mono.Security.Cryptography.MD2Managed" />
</oidMap>
</cryptographySettings>
</mscorlib>
<strongNames>
<pubTokenMapping>
<!-- ECMA key -->
<map Token="b77a5c561934e089" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (final) key -->
<map Token="b03f5f7f11d50a3a" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (Web Service Enhancement) key -->
<map Token="31bf3856ad364e35" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- IBM (DB2 Data Provider) key -->
<map Token="7c307b91aa13d208" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Silverlight 2.0 key -->
<map Token="7cec85d7bea7798e" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
</pubTokenMapping>
</strongNames>
<system.web>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpSoap12"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
<conformanceWarnings>
<add name="BasicProfile1_1"/>
</conformanceWarnings>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
</webServices>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
<!-- <add name="AspNetSqlMembershipProvider" type="Mainsoft.Web.Security.GenericMembershipProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</membership>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="LocalSqlServer" />
<!-- <add name="AspNetSqlRoleProvider" type="Mainsoft.Web.Security.GenericRoleProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</roleManager>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
</system.web>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
<bindingElementExtensions>
<add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingElementExtensions>
<bindingExtensions>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
</extensions>
</system.serviceModel>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<settingsMap>
<map sectionType="System.Web.Configuration.MembershipSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.MembershipSectionMapper, Mono.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqliteMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
<map sectionType="System.Web.Configuration.RoleManagerSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.RoleManagerSectionMapper, Mono.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlRoleProvider"
type="System.Web.Security.SqliteRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
</settingsMap>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<monoSettings>
<compilersCompatibility>
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/nowarn:0169"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilersCompatibility>
</monoSettings>
<authorization>
<allow users="*" />
</authorization>
<httpHandlers>
<add verb="*" path="Trace.axd" type="System.Web.Handlers.TraceHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.master" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.skin" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.browser" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.sitemap" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.Config" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.dll" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="*" path="*.svc" type="System.ServiceModel.Channels.SvcHttpHandlerFactory, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
<httpModules>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="RoleManager" type="System.Web.Security.RoleManagerModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="Session" type="System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpModules>
<authentication mode="Forms">
<forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<!--<user name="gonzalo" password="gonz"/>-->
</credentials>
</forms>
</authentication>
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"/>
<!--
culture="en-US"
uiculture="en-US" />
-->
<sessionState mode="InProc" />
<pages>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<!-- <add namespace="System.Web.UI.WebControls.WebParts" /> -->
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</pages>
<webControls clientScriptsLocation="/web_scripts" />
<compilation debug="false" defaultLanguage="c#" explicit="true" strict="false" >
<assemblies>
<!--<add assembly="mscorlib" /> -->
<add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
<add assembly="System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
<add assembly="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="*" /> <!-- Add assemblies in bin directory -->
</assemblies>
<expressionBuilders>
<add expressionPrefix="Resources"
type="System.Web.Compilation.ResourceExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="ConnectionStrings"
type="System.Web.Compilation.ConnectionStringsExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="AppSettings"
type="System.Web.Compilation.AppSettingsExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</expressionBuilders>
<buildProviders>
<add extension=".aspx" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider" />
<add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider" />
<add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider" />
<add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".resx" type="System.Web.Compilation.ResXBuildProvider" />
<add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider" />
<add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider" />
<add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider" />
<add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider" />
<add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider" />
</buildProviders>
</compilation>
<httpRuntime executionTimeout="110"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="5000" />
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="downlevel" userAgent="Unknown" />
</clientTarget>
<siteMap>
<providers>
<add name="AspNetXmlSiteMapProvider"
description="Default site map provider that reads in .sitemap xml files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
This diff could not be displayed because it is too large.
<configuration>
<dllmap dll="i:cygwin1.dll" target="libc.dylib" os="!windows" />
<dllmap dll="libc" target="libc.dylib" os="!windows"/>
<dllmap dll="intl" target="libintl.dylib" os="!windows"/>
<dllmap dll="intl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" target="libintl.dylib" os="!windows"/>
<dllmap dll="i:libxslt.dll" target="libxslt.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libodbc.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
<dllmap dll="oci" target="libclntsh.dylib" os="!windows"/>
<dllmap dll="db2cli" target="libdb2_36.dylib" os="!windows"/>
<dllmap dll="MonoPosixHelper" target="libMonoPosixHelper.dylib" os="!windows" />
<dllmap dll="i:msvcrt" target="libc.dylib" os="!windows"/>
<dllmap dll="i:msvcrt.dll" target="libc.dylib" os="!windows"/>
<dllmap dll="sqlite" target="libsqlite.0.dylib" os="!windows"/>
<dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="!windows"/>
<dllmap dll="libX11" target="libX11.dylib" os="!windows" />
<dllmap dll="libcairo-2.dll" target="libcairo.so.2" os="!windows"/>
<dllmap dll="libcups" target="libcups.so.2" os="!windows"/>
<dllmap dll="i:kernel32.dll">
<dllentry dll="__Internal" name="CopyMemory" target="mono_win32_compat_CopyMemory"/>
<dllentry dll="__Internal" name="FillMemory" target="mono_win32_compat_FillMemory"/>
<dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
<dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
</dllmap>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<mconfig>
<configuration>
<handlers>
<handler section="feature"
type="Mono.MonoConfig.FeatureNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.FeatureNode, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="configBlock"
type="Mono.MonoConfig.ConfigBlockNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.ConfigBlockBlock, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="default"
type="Mono.MonoConfig.DefaultNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.DefaultNode, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="defaultConfigFile"
type="Mono.MonoConfig.DefaultConfigFileNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.DefaultConfigFile, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</handlers>
</configuration>
<feature name="AJAX" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any .NET 3.5 AJAX.NET application.
]]></description>
<blocks>
<block name="AJAX config sections"/>
<block name="AJAX controls registration"/>
<block name="AJAX compilation"/>
<block name="AJAX HTTP handlers"/>
<block name="AJAX HTTP modules"/>
<block name="AJAX CodeDOM 3.5 settings"/>
<block name="AJAX runtime settings"/>
<block name="AJAX system.webServer"/>
<block name="" />
</blocks>
</feature>
<feature name="AJAX1" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any AJAX.NET 1.0 application.
]]></description>
<blocks>
<block name="AJAX1 config sections"/>
<block name="AJAX1 controls registration"/>
<block name="AJAX1 compilation"/>
<block name="AJAX1 HTTP handlers"/>
<block name="AJAX1 HTTP modules"/>
<block name="AJAX1 system.web.extensions"/>
<block name="AJAX1 system.webServer"/>
<block name="" />
</blocks>
</feature>
<feature name="DynamicData" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any ASP.NET DynamicData application.
]]></description>
<blocks>
<block name="AJAX config sections"/>
<block name="AJAX controls registration"/>
<block name="AJAX compilation"/>
<block name="AJAX HTTP handlers"/>
<block name="AJAX HTTP modules"/>
<block name="AJAX system.web.extensions"/>
<block name="AJAX system.webServer"/>
<block name="DynamicData controls registration" />
<block name="DynamicData compilation" />
<block name="DynamicData HTTP modules" />
</blocks>
</feature>
<feature name="SettingsMapProtection" target="web">
<description><![CDATA[
Adds an entry to your config file which will prevent download of the 'settings.map' file. The
file is used by the settings mapping manager to modify configuration settings depending on the operating
system under which your application runs. Add this feature only if you have your own custom 'settings.map'
file in the top-level directory of your ASP.NET application.
]]></description>
<blocks>
<block name="SettingsMap Handler"/>
</blocks>
</feature>
<!-- configuration blocks required by the features -->
<configBlock name="SettingsMap Handler">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add verb="*" path="settings.map" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
]]>
</contents>
</configBlock>
<!-- AJAX.NET 3.5 start -->
<configBlock name="AJAX config sections">
<requires>
<section name="configuration">
<section name="configSections" attachPoint="true"/>
</section>
</requires>
<contents>
<![CDATA[
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
]]>
</contents>
</configBlock>
<configBlock name="AJAX controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX HTTP handlers">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX CodeDOM 3.5 settings">
<requires>
<section name="configuration">
<section name="system.codedom">
<section name="compilers" defaultBlockName="system.codedom.compilers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
]]>
</contents>
</configBlock>
<configBlock name="AJAX runtime settings">
<requires>
<section name="configuration">
<section name="runtime"/>
</section>
</requires>
<contents>
<![CDATA[
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
]]>
</contents>
</configBlock>
<configBlock name="AJAX system.webServer">
<requires>
<section name="configuration">
<section name="system.webServer"/>
</section>
</requires>
<contents>
<![CDATA[
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
]]>
</contents>
</configBlock>
<!-- AJAX.NET 3.5 end -->
<!-- AJAX.NET 1.0 start -->
<configBlock name="AJAX1 config sections">
<requires>
<section name="configuration">
<section name="configSections" attachPoint="true"/>
</section>
</requires>
<contents>
<![CDATA[
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 HTTP handlers">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 system.web.extensions">
<requires>
<section name="configuration">
<section name="system.web.extensions"/>
</section>
</requires>
<contents>
<![CDATA[
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--
<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->
<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
writeAccessProperties attributes. -->
<!--
<profileService enabled="true"
readAccessProperties="propertyname1,propertyname2"
writeAccessProperties="propertyname1,propertyname2" />
-->
</webServices>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
</scripting>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 system.webServer">
<requires>
<section name="configuration">
<section name="system.webServer"/>
</section>
</requires>
<contents>
<![CDATA[
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
]]>
</contents>
</configBlock>
<!-- AJAX.NET 1.0 end -->
<configBlock name="DynamicData controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="DynamicData compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="DynamicData HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<!-- default contents for missing sections -->
<default section="configuration" target="any">
<![CDATA[
<configuration>
</configuration>
]]>
</default>
<default section="configSections" target="any">
<![CDATA[
<configSections>
</configSections>
]]>
</default>
<default section="system.web" target="web">
<![CDATA[
<system.web>
</system.web>
]]>
</default>
<default section="system.web.pages" target="web">
<![CDATA[
<pages>
</pages>
]]>
</default>
<default section="system.web.pages.controls" target="web">
<![CDATA[
<controls>
</controls>
]]>
</default>
<default section="system.web.compilation" target="web">
<![CDATA[
<compilation debug="true">
</compilation>
]]>
</default>
<default section="system.web.compilation.assemblies" target="web">
<![CDATA[
<assemblies>
</assemblies>
]]>
</default>
<default section="system.web.httpHandlers" target="web">
<![CDATA[
<httpHandlers>
</httpHandlers>
]]>
</default>
<default section="system.web.httpModules" target="web">
<![CDATA[
<httpModules>
</httpModules>
]]>
</default>
<default section="system.web.extensions" target="web">
<![CDATA[
<system.web.extensions>
</system.web.extensions>
]]>
</default>
<default section="system.webServer" target="web">
<![CDATA[
<system.webServer>
</system.webServer>
]]>
</default>
<default section="system.web.customErrors" target="web">
<![CDATA[
<customErrors mode="RemoteOnly"/>
]]>
</default>
<default section="system.codedom" target="any">
<![CDATA[
<system.codedom>
</system.codedom>
]]>
</default>
<default section="system.codedom.compilers" target="any">
<![CDATA[
<compilers>
</compilers>
]]>
</default>
<default section="runtime" target="any">
<![CDATA[
<runtime>
</runtime>
]]>
</default>
<!-- default config file definitions -->
<defaultConfigFile name="web.config" fileName="Web.config" target="web">
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation"/>
<section name="customErrors" defaultBlockName="system.web.customErrors"/>
</section>
</section>
</defaultConfigFile>
</mconfig>
<!--
This file defines some of the browsers that Microsoft's implementation provides in
<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers\*.browser
It is not derived from any file distributed with Microsoft's implementation. Since
we can't distribute MS's browser files, we use browscap.ini to determine
browser capabilities. Then, if and only if the application contains App_Browser/*.browser
files and we are using .NET 2.0 or higher, we supplement the capabilities with the
information in those files and the files in this directory. The primary goal of this file
is provide browser definitions that might be referenced in App_Browser/*.browser files.
-->
<browsers>
<defaultBrowser id="Default">
</defaultBrowser>
<browser id="Default">
<identification>
<userAgent match="." />
</identification>
</browser>
<browser id="IE6to9" parentID="Default">
<identification>
<capability name="majorver" match="^[6-9]" />
<capability name="browser" match="^(IE|AOL)$" />
</identification>
</browser>
<browser id="Opera8to9" parentID="Default">
<identification>
<capability name="majorver" match="^[8-9]" />
<capability name="browser" match="^Opera$" />
</identification>
</browser>
<browser id="Safari" parentID="Default">
<identification>
<capability name="browser" match="^Safari$" />
</identification>
</browser>
<browser id="Mozilla" parentID="Default">
<identification>
<capability name="browser" match="^Mozilla" />
</identification>
</browser>
</browsers>
\ No newline at end of file
<%--
//
// DefaultWsdlHelpGenerator.aspx:
//
// Author:
// Lluis Sanchez Gual (lluis@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
//
--%>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml.Serialization" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Services.Description" %>
<%@ Import Namespace="System.Web.Services.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Resources" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.CodeDom" %>
<%@ Import Namespace="System.CodeDom.Compiler" %>
<%@ Import Namespace="Microsoft.CSharp" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<%@ Assembly name="System.Web.Services" %>
<%@ Page debug="true" %>
<html>
<script language="C#" runat="server">
ServiceDescriptionCollection descriptions;
XmlSchemas schemas;
string WebServiceName;
string WebServiceDescription;
string PageName;
string DefaultBinding;
ArrayList ServiceProtocols;
string CurrentOperationName;
string CurrentOperationBinding;
string OperationDocumentation;
string CurrentOperationFormat;
bool CurrentOperationSupportsTest;
ArrayList InParams;
ArrayList OutParams;
string CurrentOperationProtocols;
int CodeTextColumns = 95;
BasicProfileViolationCollection ProfileViolations;
void Page_Load(object sender, EventArgs e)
{
descriptions = (ServiceDescriptionCollection) Context.Items["wsdls"];
schemas = (XmlSchemas) Context.Items["schemas"];
ServiceDescription desc = descriptions [0];
if (schemas.Count == 0) schemas = desc.Types.Schemas;
Service service = desc.Services[0];
WebServiceName = service.Name;
if (desc.Bindings.Count == 0)
return;
DefaultBinding = desc.Bindings[0].Name;
WebServiceDescription = service.Documentation;
if (WebServiceDescription == "" || WebServiceDescription == null)
WebServiceDescription = "Description has not been provided";
ServiceProtocols = FindServiceProtocols (null);
CurrentOperationName = Request.QueryString["op"];
CurrentOperationBinding = Request.QueryString["bnd"];
if (CurrentOperationName != null) BuildOperationInfo ();
PageName = HttpUtility.UrlEncode (Path.GetFileName(Request.Path), Encoding.UTF8);
ArrayList list = new ArrayList ();
foreach (ServiceDescription sd in descriptions) {
foreach (Binding bin in sd.Bindings)
if (bin.Extensions.Find (typeof(SoapBinding)) != null) list.Add (bin);
}
BindingsRepeater.DataSource = list;
Page.DataBind();
ProfileViolations = new BasicProfileViolationCollection ();
foreach (WsiProfilesElement claims in ((WebServicesSection) WebConfigurationManager.GetSection("system.web/webServices")).ConformanceWarnings)
if (claims.Name != WsiProfiles.None)
WebServicesInteroperability.CheckConformance (claims.Name, descriptions, ProfileViolations);
}
void BuildOperationInfo ()
{
InParams = new ArrayList ();
OutParams = new ArrayList ();
Port port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
OperationDocumentation = oper.Documentation;
if (OperationDocumentation == null || OperationDocumentation == "")
OperationDocumentation = "No additional remarks";
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput)
BuildParameters (InParams, opm);
else if (opm is OperationOutput)
BuildParameters (OutParams, opm);
}
// Protocols supported by the operation
CurrentOperationProtocols = "";
WebServiceProtocols testProtocols = 0;
ArrayList prots = FindServiceProtocols (CurrentOperationName);
for (int n=0; n<prots.Count; n++) {
string prot = (string) prots [n];
if (n != 0) CurrentOperationProtocols += ", ";
CurrentOperationProtocols += prot;
if (prot == "HttpGet")
testProtocols |= WebServiceProtocols.HttpGet;
else if (prot == "HttpPost") {
testProtocols |= WebServiceProtocols.HttpPost;
if (Context.Request.IsLocal)
testProtocols |= WebServiceProtocols.HttpPostLocalhost;
}
}
CurrentOperationSupportsTest = (WebServicesSection.Current.EnabledProtocols & testProtocols) != 0;
// Operation format
OperationBinding obin = FindOperation (binding, CurrentOperationName);
if (obin != null)
CurrentOperationFormat = GetOperationFormat (obin);
InputParamsRepeater.DataSource = InParams;
InputFormParamsRepeater.DataSource = InParams;
OutputParamsRepeater.DataSource = OutParams;
}
void BuildParameters (ArrayList list, OperationMessage opm)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
XmlSchemaComplexType ctype;
if (part.Element == XmlQualifiedName.Empty)
{
ctype = (XmlSchemaComplexType) schemas.Find (part.Type, typeof(XmlSchemaComplexType));
}
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
ctype = (XmlSchemaComplexType) elem.SchemaType;
}
XmlSchemaSequence seq = ctype.Particle as XmlSchemaSequence;
if (seq == null) return;
foreach (XmlSchemaObject ob in seq.Items)
{
Parameter p = new Parameter();
p.Description = "No additional remarks";
if (ob is XmlSchemaElement)
{
XmlSchemaElement selem = GetRefElement ((XmlSchemaElement)ob);
p.Name = selem.Name;
p.Type = selem.SchemaTypeName.Name;
}
else
{
p.Name = "Unknown";
p.Type = "Unknown";
}
list.Add (p);
}
}
else
{
foreach (MessagePart part in msg.Parts)
{
Parameter p = new Parameter ();
p.Description = "No additional remarks";
p.Name = part.Name;
if (part.Element == XmlQualifiedName.Empty)
p.Type = part.Type.Name;
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
p.Type = elem.SchemaTypeName.Name;
}
list.Add (p);
}
}
}
string GetOperationFormat (OperationBinding obin)
{
string format = "";
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
format = sob.Style.ToString ();
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
format += " / " + sbb.Use;
}
return format;
}
XmlSchemaElement GetRefElement (XmlSchemaElement elem)
{
if (!elem.RefName.IsEmpty)
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
else
return elem;
}
ArrayList FindServiceProtocols(string operName)
{
ArrayList table = new ArrayList ();
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
string prot = null;
Binding bin = descriptions.GetBinding (port.Binding);
if (bin.Extensions.Find (typeof(SoapBinding)) != null)
prot = "Soap";
else
{
HttpBinding hb = (HttpBinding) bin.Extensions.Find (typeof(HttpBinding));
if (hb != null && hb.Verb == "POST") prot = "HttpPost";
else if (hb != null && hb.Verb == "GET") prot = "HttpGet";
}
if (prot != null && operName != null)
{
if (FindOperation (bin, operName) == null)
prot = null;
}
if (prot != null && !table.Contains (prot))
table.Add (prot);
}
return table;
}
Port FindPort (string portName, string protocol)
{
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
if (portName == null)
{
Binding binding = descriptions.GetBinding (port.Binding);
if (GetProtocol (binding) == protocol) return port;
}
else if (port.Name == portName)
return port;
}
return null;
}
string GetProtocol (Binding binding)
{
if (binding.Extensions.Find (typeof(SoapBinding)) != null) return "Soap";
HttpBinding hb = (HttpBinding) binding.Extensions.Find (typeof(HttpBinding));
if (hb == null) return "";
if (hb.Verb == "POST") return "HttpPost";
if (hb.Verb == "GET") return "HttpGet";
return "";
}
Operation FindOperation (PortType portType, string name)
{
foreach (Operation oper in portType.Operations) {
if (oper.Messages.Input.Name != null) {
if (oper.Messages.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
OperationBinding FindOperation (Binding binding, string name)
{
foreach (OperationBinding oper in binding.Operations) {
if (oper.Input.Name != null) {
if (oper.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
string FormatBindingName (string name)
{
if (name == DefaultBinding) return "Methods";
else return "Methods for binding<br>" + name;
}
string GetOpName (object op)
{
OperationBinding ob = op as OperationBinding;
if (ob == null) return "";
if (ob.Input.Name != null) return ob.Input.Name;
else return ob.Name;
}
bool HasFormResult
{
get { return Request.QueryString ["ext"] == "testform"; }
}
class NoCheckCertificatePolicy : ICertificatePolicy {
public bool CheckValidationResult (ServicePoint a, X509Certificate b, WebRequest c, int d)
{
return true;
}
}
string GetOrPost ()
{
return (CurrentOperationProtocols.IndexOf ("HttpGet") >= 0) ? "GET" : "POST";
}
string GetQS ()
{
bool fill = false;
string qs = "";
NameValueCollection query_string = Request.QueryString;
for (int n = 0; n < query_string.Count; n++) {
if (fill) {
if (qs != "") qs += "&";
qs += query_string.GetKey(n) + "=" + Server.UrlEncode (query_string [n]);
}
if (query_string.GetKey(n) == "ext") fill = true;
}
return qs;
}
string GetTestResultUrl ()
{
if (!HasFormResult) return "";
string location = null;
ServiceDescription desc = descriptions [0];
Service service = desc.Services[0];
foreach (Port port in service.Ports)
if (port.Name == CurrentOperationBinding)
{
SoapAddressBinding sbi = (SoapAddressBinding) port.Extensions.Find (typeof(SoapAddressBinding));
if (sbi != null)
location = sbi.Location;
}
if (location == null)
return "Could not locate web service";
return location + "/" + CurrentOperationName;
}
string GenerateOperationMessages (string protocol, bool generateInput)
{
if (!IsOperationSupported (protocol)) return "";
Port port;
if (protocol != "Soap") port = FindPort (null, protocol);
else port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
OperationBinding obin = FindOperation (binding, CurrentOperationName);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
HtmlSampleGenerator sg = new HtmlSampleGenerator (descriptions, schemas);
string txt = sg.GenerateMessage (port, obin, oper, protocol, generateInput);
if (protocol == "Soap") txt = WrapText (txt,CodeTextColumns);
txt = ColorizeXml (txt);
txt = txt.Replace ("@placeholder!","<span class='literal-placeholder'>");
txt = txt.Replace ("!placeholder@","</span>");
return txt;
}
bool IsOperationSupported (string protocol)
{
if (CurrentPage != "op" || CurrentTab != "msg") return false;
if (protocol == "Soap") return true;
Port port = FindPort (null, protocol);
if (port == null) return false;
Binding binding = descriptions.GetBinding (port.Binding);
if (binding == null) return false;
return FindOperation (binding, CurrentOperationName) != null;
}
//
// Proxy code generation
//
string GetProxyCode ()
{
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add (codeNamespace);
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
foreach (ServiceDescription sd in descriptions)
importer.AddServiceDescription(sd, null, null);
foreach (XmlSchema sc in schemas)
importer.Schemas.Add (sc);
importer.Import(codeNamespace, codeUnit);
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
CodeDomProvider provider = GetProvider (langId);
ICodeGenerator generator = provider.CreateGenerator();
CodeGeneratorOptions options = new CodeGeneratorOptions();
StringWriter sw = new StringWriter ();
generator.GenerateCodeFromCompileUnit(codeUnit, sw, options);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), langId);
}
public string CurrentLanguage
{
get {
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
return langId;
}
}
public string CurrentProxytName
{
get {
string lan = CurrentLanguage == "cs" ? "C#" : "Visual Basic";
return lan + " Client Proxy";
}
}
private CodeDomProvider GetProvider(string langId)
{
switch (langId.ToUpper())
{
case "CS": return new CSharpCodeProvider();
case "VB": return new VBCodeProvider();
default: return null;
}
}
//
// Document generation
//
class UTF8StringWriter : StringWriter {
public override Encoding Encoding {
get { return Encoding.UTF8; }
}
}
string GenerateDocument ()
{
UTF8StringWriter sw = new UTF8StringWriter ();
if (CurrentDocType == "wsdl")
descriptions [CurrentDocInd].Write (sw);
else if (CurrentDocType == "schema")
schemas [CurrentDocInd].Write (sw);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), "xml");
}
public string CurrentDocType
{
get { return Request.QueryString ["doctype"] != null ? Request.QueryString ["doctype"] : "wsdl"; }
}
public int CurrentDocInd
{
get { return Request.QueryString ["docind"] != null ? int.Parse (Request.QueryString ["docind"]) : 0; }
}
public string CurrentDocumentName
{
get {
if (CurrentDocType == "wsdl")
return "WSDL document for namespace \"" + descriptions [CurrentDocInd].TargetNamespace + "\"";
else
return "Xml Schema for namespace \"" + schemas [CurrentDocInd].TargetNamespace + "\"";
}
}
//
// Pages and tabs
//
bool firstTab = true;
ArrayList disabledTabs = new ArrayList ();
string CurrentTab
{
get { return Request.QueryString["tab"] != null ? Request.QueryString["tab"] : "main" ; }
}
string CurrentPage
{
get { return Request.QueryString["page"] != null ? Request.QueryString["page"] : "main" ; }
}
void WriteTabs ()
{
if (CurrentOperationName != null)
{
WriteTab ("main","Overview");
WriteTab ("test","Test Form");
WriteTab ("msg","Message Layout");
}
}
void WriteTab (string id, string label)
{
if (!firstTab) Response.Write("&nbsp;|&nbsp;");
firstTab = false;
string cname = CurrentTab == id ? "tabLabelOn" : "tabLabelOff";
Response.Write ("<a href='" + PageName + "?" + GetPageContext(null) + GetDataContext() + "tab=" + id + "' style='text-decoration:none'>");
Response.Write ("<span class='" + cname + "'>" + label + "</span>");
Response.Write ("</a>");
}
string GetTabContext (string pag, string tab)
{
if (tab == null) tab = CurrentTab;
if (pag == null) pag = CurrentPage;
if (pag != CurrentPage) tab = "main";
return "page=" + pag + "&tab=" + tab + "&";
}
string GetPageContext (string pag)
{
if (pag == null) pag = CurrentPage;
return "page=" + pag + "&";
}
class Tab
{
public string Id;
public string Label;
}
//
// Syntax coloring
//
static string keywords_cs =
"(\\babstract\\b|\\bevent\\b|\\bnew\\b|\\bstruct\\b|\\bas\\b|\\bexplicit\\b|\\bnull\\b|\\bswitch\\b|\\bbase\\b|\\bextern\\b|" +
"\\bobject\\b|\\bthis\\b|\\bbool\\b|\\bfalse\\b|\\boperator\\b|\\bthrow\\b|\\bbreak\\b|\\bfinally\\b|\\bout\\b|\\btrue\\b|" +
"\\bbyte\\b|\\bfixed\\b|\\boverride\\b|\\btry\\b|\\bcase\\b|\\bfloat\\b|\\bparams\\b|\\btypeof\\b|\\bcatch\\b|\\bfor\\b|" +
"\\bprivate\\b|\\buint\\b|\\bchar\\b|\\bforeach\\b|\\bprotected\\b|\\bulong\\b|\\bchecked\\b|\\bgoto\\b|\\bpublic\\b|" +
"\\bunchecked\\b|\\bclass\\b|\\bif\\b|\\breadonly\\b|\\bunsafe\\b|\\bconst\\b|\\bimplicit\\b|\\bref\\b|\\bushort\\b|" +
"\\bcontinue\\b|\\bin\\b|\\breturn\\b|\\busing\\b|\\bdecimal\\b|\\bint\\b|\\bsbyte\\b|\\bvirtual\\b|\\bdefault\\b|" +
"\\binterface\\b|\\bsealed\\b|\\bvolatile\\b|\\bdelegate\\b|\\binternal\\b|\\bshort\\b|\\bvoid\\b|\\bdo\\b|\\bis\\b|" +
"\\bsizeof\\b|\\bwhile\\b|\\bdouble\\b|\\block\\b|\\bstackalloc\\b|\\belse\\b|\\blong\\b|\\bstatic\\b|\\benum\\b|" +
"\\bnamespace\\b|\\bstring\\b)";
static string keywords_vb =
"(\\bAddHandler\\b|\\bAddressOf\\b|\\bAlias\\b|\\bAnd\\b|\\bAndAlso\\b|\\bAnsi\\b|\\bAs\\b|\\bAssembly\\b|" +
"\\bAuto\\b|\\bBoolean\\b|\\bByRef\\b|\\bByte\\b|\\bByVal\\b|\\bCall\\b|\\bCase\\b|\\bCatch\\b|" +
"\\bCBool\\b|\\bCByte\\b|\\bCChar\\b|\\bCDate\\b|\\bCDec\\b|\\bCDbl\\b|\\bChar\\b|\\bCInt\\b|" +
"\\bClass\\b|\\bCLng\\b|\\bCObj\\b|\\bConst\\b|\\bCShort\\b|\\bCSng\\b|\\bCStr\\b|\\bCType\\b|" +
"\\bDate\\b|\\bDecimal\\b|\\bDeclare\\b|\\bDefault\\b|\\bDelegate\\b|\\bDim\\b|\\bDirectCast\\b|\\bDo\\b|" +
"\\bDouble\\b|\\bEach\\b|\\bElse\\b|\\bElseIf\\b|\\bEnd\\b|\\bEnum\\b|\\bErase\\b|\\bError\\b|" +
"\\bEvent\\b|\\bExit\\b|\\bFalse\\b|\\bFinally\\b|\\bFor\\b|\\bFriend\\b|\\bFunction\\b|\\bGet\\b|" +
"\\bGetType\\b|\\bGoSub\\b|\\bGoTo\\b|\\bHandles\\b|\\bIf\\b|\\bImplements\\b|\\bImports\\b|\\bIn\\b|" +
"\\bInherits\\b|\\bInteger\\b|\\bInterface\\b|\\bIs\\b|\\bLet\\b|\\bLib\\b|\\bLike\\b|\\bLong\\b|" +
"\\bLoop\\b|\\bMe\\b|\\bMod\\b|\\bModule\\b|\\bMustInherit\\b|\\bMustOverride\\b|\\bMyBase\\b|\\bMyClass\\b|" +
"\\bNamespace\\b|\\bNew\\b|\\bNext\\b|\\bNot\\b|\\bNothing\\b|\\bNotInheritable\\b|\\bNotOverridable\\b|\\bObject\\b|" +
"\\bOn\\b|\\bOption\\b|\\bOptional\\b|\\bOr\\b|\\bOrElse\\b|\\bOverloads\\b|\\bOverridable\\b|\\bOverrides\\b|" +
"\\bParamArray\\b|\\bPreserve\\b|\\bPrivate\\b|\\bProperty\\b|\\bProtected\\b|\\bPublic\\b|\\bRaiseEvent\\b|\\bReadOnly\\b|" +
"\\bReDim\\b|\\bREM\\b|\\bRemoveHandler\\b|\\bResume\\b|\\bReturn\\b|\\bSelect\\b|\\bSet\\b|\\bShadows\\b|" +
"\\bShared\\b|\\bShort\\b|\\bSingle\\b|\\bStatic\\b|\\bStep\\b|\\bStop\\b|\\bString\\b|\\bStructure\\b|" +
"\\bSub\\b|\\bSyncLock\\b|\\bThen\\b|\\bThrow\\b|\\bTo\\b|\\bTrue\\b|\\bTry\\b|\\bTypeOf\\b|" +
"\\bUnicode\\b|\\bUntil\\b|\\bVariant\\b|\\bWhen\\b|\\bWhile\\b|\\bWith\\b|\\bWithEvents\\b|\\bWriteOnly\\b|\\bXor\\b)";
string Colorize (string text, string lang)
{
if (lang == "xml") return ColorizeXml (text);
else if (lang == "cs") return ColorizeCs (text);
else if (lang == "vb") return ColorizeVb (text);
else return text;
}
string ColorizeXml (string text)
{
text = text.Replace (" ", "&nbsp;");
Regex re = new Regex ("\r\n|\r|\n");
text = re.Replace (text, "_br_");
re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
text = re.Replace (text,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = new Regex ("\\{(\\w*):([\\s\\S]*?)\\}");
text = re.Replace (text,"<span style='color:$1'>$2</span>");
re = new Regex ("\"(.*?)\"");
text = re.Replace (text,"\"<span style='color:purple'>$1</span>\"");
text = text.Replace ("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("_br_", "<br>");
return text;
}
string ColorizeCs (string text)
{
text = text.Replace (" ", "&nbsp;");
text = text.Replace ("<", "&lt;");
text = text.Replace (">", "&gt;");
Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("//(((.(?!\"</span>))|\"(((?!\").)*)\"</span>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_cs);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
string ColorizeVb (string text)
{
text = text.Replace (" ", "&nbsp;");
/* Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("'(((.(?!\"\\<\\/span\\>))|\"(((?!\").)*)\"\\<\\/span\\>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_vb);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
*/
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
//
// Helper methods and classes
//
string GetDataContext ()
{
return "op=" + CurrentOperationName + "&bnd=" + CurrentOperationBinding + "&";
}
string GetOptionSel (string v1, string v2)
{
string op = "<option ";
if (v1 == v2) op += "selected ";
return op + "value='" + v1 + "'>";
}
string WrapText (string text, int maxChars)
{
text = text.Replace(" />","/>");
string linspace = null;
int lincount = 0;
int breakpos = 0;
int linstart = 0;
bool inquotes = false;
char lastc = ' ';
string sublineIndent = "";
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
for (int n=0; n<text.Length; n++)
{
char c = text [n];
if (c=='\r' || c=='\n' || n==text.Length-1)
{
sb.Append (linspace + sublineIndent + text.Substring (linstart, n-linstart+1));
linspace = null;
lincount = 0;
linstart = n+1;
breakpos = linstart;
sublineIndent = "";
lastc = c;
continue;
}
if (lastc==',' || lastc=='(')
{
if (!inquotes) breakpos = n;
}
if (lincount > maxChars && breakpos >= linstart)
{
if (linspace != null)
sb.Append (linspace + sublineIndent);
sb.Append (text.Substring (linstart, breakpos-linstart));
sb.Append ("\n");
sublineIndent = " ";
lincount = linspace.Length + sublineIndent.Length + (n-breakpos);
linstart = breakpos;
}
if (c==' ' || c=='\t')
{
if (!inquotes)
breakpos = n;
}
else if (c=='"')
{
inquotes = !inquotes;
}
else
if (linspace == null) {
linspace = text.Substring (linstart, n-linstart);
linstart = n;
}
lincount++;
lastc = c;
}
return sb.ToString ();
}
class Parameter
{
string name;
string type;
string description;
public string Name { get { return name; } set { name = value; } }
public string Type { get { return type; } set { type = value; } }
public string Description { get { return description; } set { description = value; } }
}
public class HtmlSampleGenerator: SampleGenerator
{
public HtmlSampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
: base (services, schemas)
{
}
protected override string GetLiteral (string s)
{
return "@placeholder!" + s + "!placeholder@";
}
}
public class SampleGenerator
{
protected ServiceDescriptionCollection descriptions;
protected XmlSchemas schemas;
XmlSchemaElement anyElement;
ArrayList queue;
SoapBindingUse currentUse;
XmlDocument document = new XmlDocument ();
static readonly XmlQualifiedName anyType = new XmlQualifiedName ("anyType",XmlSchema.Namespace);
static readonly XmlQualifiedName arrayType = new XmlQualifiedName ("Array","http://schemas.xmlsoap.org/soap/encoding/");
static readonly XmlQualifiedName arrayTypeRefName = new XmlQualifiedName ("arrayType","http://schemas.xmlsoap.org/soap/encoding/");
const string SoapEnvelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
const string WsdlNamespace = "http://schemas.xmlsoap.org/wsdl/";
const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
class EncodedType
{
public EncodedType (string ns, XmlSchemaElement elem) { Namespace = ns; Element = elem; }
public string Namespace;
public XmlSchemaElement Element;
}
public SampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
{
descriptions = services;
this.schemas = schemas;
queue = new ArrayList ();
}
public string GenerateMessage (Port port, OperationBinding obin, Operation oper, string protocol, bool generateInput)
{
OperationMessage msg = null;
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput && generateInput) msg = opm;
else if (opm is OperationOutput && !generateInput) msg = opm;
}
if (msg == null) return null;
switch (protocol) {
case "Soap": return GenerateHttpSoapMessage (port, obin, oper, msg);
case "HttpGet": return GenerateHttpGetMessage (port, obin, oper, msg);
case "HttpPost": return GenerateHttpPostMessage (port, obin, oper, msg);
}
return "Unknown protocol";
}
public string GenerateHttpSoapMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
SoapAddressBinding sab = port.Extensions.Find (typeof(SoapAddressBinding)) as SoapAddressBinding;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
req += "POST " + new Uri (sab.Location).AbsolutePath + "\n";
req += "SOAPAction: " + sob.SoapAction + "\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
}
req += GenerateSoapMessage (obin, oper, msg);
return req;
}
public string GenerateHttpGetMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location + "?" + BuildQueryString (msg);
req += "GET " + location + "\n";
req += "Host: " + GetLiteral ("string");
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
MimeXmlBinding mxb = (MimeXmlBinding) obin.Output.Extensions.Find (typeof(MimeXmlBinding)) as MimeXmlBinding;
if (mxb == null) return req;
Message message = descriptions.GetMessage (msg.Message);
XmlQualifiedName ename = null;
foreach (MessagePart part in message.Parts)
if (part.Name == mxb.Part) ename = part.Element;
if (ename == null) return req + GetLiteral("string");
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
currentUse = SoapBindingUse.Literal;
WriteRootElementSample (xtw, ename);
xtw.Close ();
req += sw.ToString ();
}
return req;
}
public string GenerateHttpPostMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location;
req += "POST " + location + "\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
req += BuildQueryString (msg);
}
else return GenerateHttpGetMessage (port, obin, oper, msg);
return req;
}
string BuildQueryString (OperationMessage opm)
{
string s = "";
Message msg = descriptions.GetMessage (opm.Message);
foreach (MessagePart part in msg.Parts)
{
if (s.Length != 0) s += "&";
s += part.Name + "=" + GetLiteral (part.Type.Name);
}
return s;
}
public string GenerateSoapMessage (OperationBinding obin, Operation oper, OperationMessage msg)
{
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
SoapBindingStyle style = (sob != null) ? sob.Style : SoapBindingStyle.Document;
MessageBinding msgbin = (msg is OperationInput) ? (MessageBinding) obin.Input : (MessageBinding)obin.Output;
SoapBodyBinding sbb = msgbin.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
SoapBindingUse bodyUse = (sbb != null) ? sbb.Use : SoapBindingUse.Literal;
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument ();
xtw.WriteStartElement ("soap", "Envelope", SoapEnvelopeNamespace);
xtw.WriteAttributeString ("xmlns", "xsi", null, XmlSchema.InstanceNamespace);
xtw.WriteAttributeString ("xmlns", "xsd", null, XmlSchema.Namespace);
if (bodyUse == SoapBindingUse.Encoded)
{
xtw.WriteAttributeString ("xmlns", "soapenc", null, SoapEncodingNamespace);
xtw.WriteAttributeString ("xmlns", "tns", null, msg.Message.Namespace);
}
// Serialize headers
bool writtenHeader = false;
foreach (object ob in msgbin.Extensions)
{
SoapHeaderBinding hb = ob as SoapHeaderBinding;
if (hb == null) continue;
if (!writtenHeader) {
xtw.WriteStartElement ("soap", "Header", SoapEnvelopeNamespace);
writtenHeader = true;
}
WriteHeader (xtw, hb);
}
if (writtenHeader)
xtw.WriteEndElement ();
// Serialize body
xtw.WriteStartElement ("soap", "Body", SoapEnvelopeNamespace);
currentUse = bodyUse;
WriteBody (xtw, oper, msg, sbb, style);
xtw.WriteEndElement ();
xtw.WriteEndElement ();
xtw.Close ();
return sw.ToString ();
}
void WriteHeader (XmlTextWriter xtw, SoapHeaderBinding header)
{
Message msg = descriptions.GetMessage (header.Message);
if (msg == null) throw new InvalidOperationException ("Message " + header.Message + " not found");
MessagePart part = msg.Parts [header.Part];
if (part == null) throw new InvalidOperationException ("Message part " + header.Part + " not found in message " + header.Message);
currentUse = header.Use;
if (currentUse == SoapBindingUse.Literal)
WriteRootElementSample (xtw, part.Element);
else
WriteTypeSample (xtw, part.Type);
}
void WriteBody (XmlTextWriter xtw, Operation oper, OperationMessage opm, SoapBodyBinding sbb, SoapBindingStyle style)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
if (part.Element == XmlQualifiedName.Empty)
WriteTypeSample (xtw, part.Type);
else
WriteRootElementSample (xtw, part.Element);
}
else
{
string elemName = oper.Name;
string ns = "";
if (opm is OperationOutput) elemName += "Response";
if (style == SoapBindingStyle.Rpc) {
xtw.WriteStartElement (elemName, sbb.Namespace);
ns = sbb.Namespace;
}
foreach (MessagePart part in msg.Parts)
{
if (part.Element == XmlQualifiedName.Empty)
{
XmlSchemaElement elem = new XmlSchemaElement ();
elem.SchemaTypeName = part.Type;
elem.Name = part.Name;
WriteElementSample (xtw, ns, elem);
}
else
WriteRootElementSample (xtw, part.Element);
}
if (style == SoapBindingStyle.Rpc)
xtw.WriteEndElement ();
}
WriteQueuedTypeSamples (xtw);
}
void WriteRootElementSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (qname, typeof(XmlSchemaElement));
if (elem == null) throw new InvalidOperationException ("Element not found: " + qname);
WriteElementSample (xtw, qname.Namespace, elem);
}
void WriteElementSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
bool sharedAnnType = false;
XmlQualifiedName root;
if (!elem.RefName.IsEmpty) {
XmlSchemaElement refElem = FindRefElement (elem);
if (refElem == null) throw new InvalidOperationException ("Global element not found: " + elem.RefName);
root = elem.RefName;
elem = refElem;
sharedAnnType = true;
}
else
root = new XmlQualifiedName (elem.Name, ns);
if (!elem.SchemaTypeName.IsEmpty)
{
XmlSchemaComplexType st = FindComplexTyype (elem.SchemaTypeName);
if (st != null)
WriteComplexTypeSample (xtw, st, root);
else
{
xtw.WriteStartElement (root.Name, root.Namespace);
if (currentUse == SoapBindingUse.Encoded)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, elem.SchemaTypeName));
xtw.WriteString (GetLiteral (FindBuiltInType (elem.SchemaTypeName)));
xtw.WriteEndElement ();
}
}
else if (elem.SchemaType == null)
{
xtw.WriteStartElement ("any");
xtw.WriteEndElement ();
}
else
WriteComplexTypeSample (xtw, (XmlSchemaComplexType) elem.SchemaType, root);
}
void WriteTypeSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaComplexType ctype = FindComplexTyype (qname);
if (ctype != null) {
WriteComplexTypeSample (xtw, ctype, qname);
return;
}
XmlSchemaSimpleType stype = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (stype != null) {
WriteSimpleTypeSample (xtw, stype);
return;
}
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
throw new InvalidOperationException ("Type not found: " + qname);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName)
{
WriteComplexTypeSample (xtw, stype, rootName, -1);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName, int id)
{
string ns = rootName.Namespace;
if (rootName.Name.IndexOf ("[]") != -1) rootName = arrayType;
if (currentUse == SoapBindingUse.Encoded) {
string pref = xtw.LookupPrefix (rootName.Namespace);
if (pref == null) pref = "q1";
xtw.WriteStartElement (pref, rootName.Name, rootName.Namespace);
ns = "";
}
else
xtw.WriteStartElement (rootName.Name, rootName.Namespace);
if (id != -1)
{
xtw.WriteAttributeString ("id", "id" + id);
if (rootName != arrayType)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, rootName));
}
WriteComplexTypeAttributes (xtw, stype);
WriteComplexTypeElements (xtw, ns, stype);
xtw.WriteEndElement ();
}
void WriteComplexTypeAttributes (XmlTextWriter xtw, XmlSchemaComplexType stype)
{
WriteAttributes (xtw, stype.Attributes, stype.AnyAttribute);
}
Dictionary<XmlSchemaComplexType,int> recursed_types = new Dictionary<XmlSchemaComplexType,int> ();
void WriteComplexTypeElements (XmlTextWriter xtw, string ns, XmlSchemaComplexType stype)
{
int prev = 0;
if (recursed_types.ContainsKey (stype))
prev = recursed_types [stype];
if (prev > 1)
return;
recursed_types [stype] = ++prev;
if (stype.Particle != null)
WriteParticleComplexContent (xtw, ns, stype.Particle);
else
{
if (stype.ContentModel is XmlSchemaSimpleContent)
WriteSimpleContent (xtw, (XmlSchemaSimpleContent)stype.ContentModel);
else if (stype.ContentModel is XmlSchemaComplexContent)
WriteComplexContent (xtw, ns, (XmlSchemaComplexContent)stype.ContentModel);
}
prev = recursed_types [stype];
recursed_types [stype] = --prev;
}
void WriteAttributes (XmlTextWriter xtw, XmlSchemaObjectCollection atts, XmlSchemaAnyAttribute anyat)
{
foreach (XmlSchemaObject at in atts)
{
if (at is XmlSchemaAttribute)
{
string ns;
XmlSchemaAttribute attr = (XmlSchemaAttribute)at;
XmlSchemaAttribute refAttr = attr;
// refAttr.Form; TODO
if (!attr.RefName.IsEmpty) {
refAttr = FindRefAttribute (attr.RefName);
if (refAttr == null) throw new InvalidOperationException ("Global attribute not found: " + attr.RefName);
}
string val;
if (!refAttr.SchemaTypeName.IsEmpty) val = FindBuiltInType (refAttr.SchemaTypeName);
else val = FindBuiltInType ((XmlSchemaSimpleType) refAttr.SchemaType);
xtw.WriteAttributeString (refAttr.Name, val);
}
else if (at is XmlSchemaAttributeGroupRef)
{
XmlSchemaAttributeGroupRef gref = (XmlSchemaAttributeGroupRef)at;
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
WriteAttributes (xtw, grp.Attributes, grp.AnyAttribute);
}
}
if (anyat != null)
xtw.WriteAttributeString ("custom-attribute","value");
}
void WriteParticleComplexContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle)
{
WriteParticleContent (xtw, ns, particle, false);
}
void WriteParticleContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle, bool multiValue)
{
if (particle is XmlSchemaGroupRef)
particle = GetRefGroupParticle ((XmlSchemaGroupRef)particle);
if (particle.MaxOccurs > 1) multiValue = true;
if (particle is XmlSchemaSequence) {
WriteSequenceContent (xtw, ns, ((XmlSchemaSequence)particle).Items, multiValue);
}
else if (particle is XmlSchemaChoice) {
if (((XmlSchemaChoice)particle).Items.Count == 1)
WriteSequenceContent (xtw, ns, ((XmlSchemaChoice)particle).Items, multiValue);
else
WriteChoiceContent (xtw, ns, (XmlSchemaChoice)particle, multiValue);
}
else if (particle is XmlSchemaAll) {
WriteSequenceContent (xtw, ns, ((XmlSchemaAll)particle).Items, multiValue);
}
}
void WriteSequenceContent (XmlTextWriter xtw, string ns, XmlSchemaObjectCollection items, bool multiValue)
{
foreach (XmlSchemaObject item in items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteContentItem (XmlTextWriter xtw, string ns, XmlSchemaObject item, bool multiValue)
{
if (item is XmlSchemaGroupRef)
item = GetRefGroupParticle ((XmlSchemaGroupRef)item);
if (item is XmlSchemaElement)
{
XmlSchemaElement elem = (XmlSchemaElement) item;
XmlSchemaElement refElem;
if (!elem.RefName.IsEmpty) refElem = FindRefElement (elem);
else refElem = elem;
int num = (elem.MaxOccurs == 1 && !multiValue) ? 1 : 2;
for (int n=0; n<num; n++)
{
if (currentUse == SoapBindingUse.Literal)
WriteElementSample (xtw, ns, refElem);
else
WriteRefTypeSample (xtw, ns, refElem);
}
}
else if (item is XmlSchemaAny)
{
xtw.WriteString (GetLiteral ("xml"));
}
else if (item is XmlSchemaParticle) {
WriteParticleContent (xtw, ns, (XmlSchemaParticle)item, multiValue);
}
}
void WriteChoiceContent (XmlTextWriter xtw, string ns, XmlSchemaChoice choice, bool multiValue)
{
foreach (XmlSchemaObject item in choice.Items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteSimpleContent (XmlTextWriter xtw, XmlSchemaSimpleContent content)
{
XmlSchemaSimpleContentExtension ext = content.Content as XmlSchemaSimpleContentExtension;
if (ext != null)
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
XmlQualifiedName qname = GetContentBaseType (content.Content);
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
}
string FindBuiltInType (XmlQualifiedName qname)
{
if (qname.Namespace == XmlSchema.Namespace)
return qname.Name;
XmlSchemaComplexType ct = FindComplexTyype (qname);
if (ct != null)
{
XmlSchemaSimpleContent sc = ct.ContentModel as XmlSchemaSimpleContent;
if (sc == null) throw new InvalidOperationException ("Invalid schema");
return FindBuiltInType (GetContentBaseType (sc.Content));
}
XmlSchemaSimpleType st = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (st != null)
return FindBuiltInType (st);
throw new InvalidOperationException ("Definition of type " + qname + " not found");
}
string FindBuiltInType (XmlSchemaSimpleType st)
{
if (st.Content is XmlSchemaSimpleTypeRestriction) {
return FindBuiltInType (GetContentBaseType (st.Content));
}
else if (st.Content is XmlSchemaSimpleTypeList) {
string s = FindBuiltInType (GetContentBaseType (st.Content));
return s + " " + s + " ...";
}
else if (st.Content is XmlSchemaSimpleTypeUnion)
{
//Check if all types of the union are equal. If not, then will use anyType.
XmlSchemaSimpleTypeUnion uni = (XmlSchemaSimpleTypeUnion) st.Content;
string utype = null;
// Anonymous types are unique
if (uni.BaseTypes.Count != 0 && uni.MemberTypes.Length != 0)
return "string";
foreach (XmlQualifiedName mt in uni.MemberTypes)
{
string qn = FindBuiltInType (mt);
if (utype != null && qn != utype) return "string";
else utype = qn;
}
return utype;
}
else
return "string";
}
XmlQualifiedName GetContentBaseType (XmlSchemaObject ob)
{
if (ob is XmlSchemaSimpleContentExtension)
return ((XmlSchemaSimpleContentExtension)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleContentRestriction)
return ((XmlSchemaSimpleContentRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeRestriction)
return ((XmlSchemaSimpleTypeRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeList)
return ((XmlSchemaSimpleTypeList)ob).ItemTypeName;
else
return null;
}
void WriteComplexContent (XmlTextWriter xtw, string ns, XmlSchemaComplexContent content)
{
XmlQualifiedName qname;
XmlSchemaComplexContentExtension ext = content.Content as XmlSchemaComplexContentExtension;
if (ext != null) qname = ext.BaseTypeName;
else {
XmlSchemaComplexContentRestriction rest = (XmlSchemaComplexContentRestriction)content.Content;
qname = rest.BaseTypeName;
if (qname == arrayType) {
ParseArrayType (rest, out qname);
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "Item";
elem.SchemaTypeName = qname;
xtw.WriteAttributeString ("arrayType", SoapEncodingNamespace, qname.Name + "[2]");
WriteContentItem (xtw, ns, elem, true);
return;
}
}
// Add base map members to this map
XmlSchemaComplexType ctype = FindComplexTyype (qname);
WriteComplexTypeAttributes (xtw, ctype);
if (ext != null) {
// Add the members of this map
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
if (ext.Particle != null)
WriteParticleComplexContent (xtw, ns, ext.Particle);
}
WriteComplexTypeElements (xtw, ns, ctype);
}
void ParseArrayType (XmlSchemaComplexContentRestriction rest, out XmlQualifiedName qtype)
{
XmlSchemaAttribute arrayTypeAt = FindArrayAttribute (rest.Attributes);
XmlAttribute[] uatts = arrayTypeAt.UnhandledAttributes;
if (uatts == null || uatts.Length == 0) throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
XmlAttribute xat = null;
foreach (XmlAttribute at in uatts)
if (at.LocalName == "arrayType" && at.NamespaceURI == WsdlNamespace)
{ xat = at; break; }
if (xat == null)
throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
string arrayType = xat.Value;
string type, ns;
int i = arrayType.LastIndexOf (":");
if (i == -1) ns = "";
else ns = arrayType.Substring (0,i);
int j = arrayType.IndexOf ("[", i+1);
if (j == -1) throw new InvalidOperationException ("Cannot parse WSDL array type: " + arrayType);
type = arrayType.Substring (i+1);
type = type.Substring (0, type.Length-2);
qtype = new XmlQualifiedName (type, ns);
}
XmlSchemaAttribute FindArrayAttribute (XmlSchemaObjectCollection atts)
{
foreach (object ob in atts)
{
XmlSchemaAttribute att = ob as XmlSchemaAttribute;
if (att != null && att.RefName == arrayTypeRefName) return att;
XmlSchemaAttributeGroupRef gref = ob as XmlSchemaAttributeGroupRef;
if (gref != null)
{
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
att = FindArrayAttribute (grp.Attributes);
if (att != null) return att;
}
}
return null;
}
void WriteSimpleTypeSample (XmlTextWriter xtw, XmlSchemaSimpleType stype)
{
xtw.WriteString (GetLiteral (FindBuiltInType (stype)));
}
XmlSchemaParticle GetRefGroupParticle (XmlSchemaGroupRef refGroup)
{
XmlSchemaGroup grp = (XmlSchemaGroup) schemas.Find (refGroup.RefName, typeof (XmlSchemaGroup));
return grp.Particle;
}
XmlSchemaElement FindRefElement (XmlSchemaElement elem)
{
if (elem.RefName.Namespace == XmlSchema.Namespace)
{
if (anyElement != null) return anyElement;
anyElement = new XmlSchemaElement ();
anyElement.Name = "any";
anyElement.SchemaTypeName = anyType;
return anyElement;
}
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
}
XmlSchemaAttribute FindRefAttribute (XmlQualifiedName refName)
{
if (refName.Namespace == XmlSchema.Namespace)
{
XmlSchemaAttribute at = new XmlSchemaAttribute ();
at.Name = refName.Name;
at.SchemaTypeName = new XmlQualifiedName ("string",XmlSchema.Namespace);
return at;
}
return (XmlSchemaAttribute) schemas.Find (refName, typeof(XmlSchemaAttribute));
}
void WriteRefTypeSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
if (elem.SchemaTypeName.Namespace == XmlSchema.Namespace || schemas.Find (elem.SchemaTypeName, typeof(XmlSchemaSimpleType)) != null)
WriteElementSample (xtw, ns, elem);
else
{
xtw.WriteStartElement (elem.Name, ns);
xtw.WriteAttributeString ("href", "#id" + (queue.Count+1));
xtw.WriteEndElement ();
queue.Add (new EncodedType (ns, elem));
}
}
void WriteQueuedTypeSamples (XmlTextWriter xtw)
{
for (int n=0; n<queue.Count; n++)
{
EncodedType ec = (EncodedType) queue[n];
XmlSchemaComplexType st = FindComplexTyype (ec.Element.SchemaTypeName);
WriteComplexTypeSample (xtw, st, ec.Element.SchemaTypeName, n+1);
}
}
XmlSchemaComplexType FindComplexTyype (XmlQualifiedName qname)
{
if (qname.Name.IndexOf ("[]") != -1)
{
XmlSchemaComplexType stype = new XmlSchemaComplexType ();
stype.ContentModel = new XmlSchemaComplexContent ();
XmlSchemaComplexContentRestriction res = new XmlSchemaComplexContentRestriction ();
stype.ContentModel.Content = res;
res.BaseTypeName = arrayType;
XmlSchemaAttribute att = new XmlSchemaAttribute ();
att.RefName = arrayTypeRefName;
res.Attributes.Add (att);
XmlAttribute xat = document.CreateAttribute ("arrayType", WsdlNamespace);
xat.Value = qname.Namespace + ":" + qname.Name;
att.UnhandledAttributes = new XmlAttribute[] {xat};
return stype;
}
return (XmlSchemaComplexType) schemas.Find (qname, typeof(XmlSchemaComplexType));
}
string GetQualifiedNameString (XmlTextWriter xtw, XmlQualifiedName qname)
{
string pref = xtw.LookupPrefix (qname.Namespace);
if (pref != null) return pref + ":" + qname.Name;
xtw.WriteAttributeString ("xmlns", "q1", null, qname.Namespace);
return "q1:" + qname.Name;
}
protected virtual string GetLiteral (string s)
{
return s;
}
void GetOperationFormat (OperationBinding obin, out SoapBindingStyle style, out SoapBindingUse use)
{
style = SoapBindingStyle.Document;
use = SoapBindingUse.Literal;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
style = sob.Style;
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
use = sbb.Use;
}
}
}
</script>
<head runat="server">
<%
Response.Write ("<link rel=\"alternate\" type=\"text/xml\" href=\"" + Request.FilePath + "?disco\"/>");
%>
<title><%=WebServiceName%> Web Service</title>
<style type="text/css">
BODY { font-family: Arial; margin-left: 20px; margin-top: 20px; font-size: x-small}
TABLE { font-size: x-small }
.title { color:dimgray; font-family: Arial; font-size:20pt; font-weight:900}
.operationTitle { color:dimgray; font-family: Arial; font-size:15pt; font-weight:900}
.method { font-size: x-small }
.bindingLabel { font-size: x-small; font-weight:bold; color:darkgray; line-height:8pt; display:block; margin-bottom:3px }
.label { font-size: small; font-weight:bold; color:darkgray }
.paramTable { font-size: x-small }
.paramTable TR { background-color: gainsboro }
.paramFormTable { font-size: x-small; padding: 10px; background-color: gainsboro }
.paramFormTable TR { background-color: gainsboro }
.paramInput { border: solid 1px gray }
.button {border: solid 1px gray }
.smallSeparator { height:3px; overflow:hidden }
.panel { background-color:whitesmoke; border: solid 1px silver; border-top: solid 1px silver }
.codePanel { background-color: white; font-size:x-small; padding:7px; border:solid 1px silver}
.code-xml { font-size:10pt; font-family:courier }
.code-cs { font-size:10pt; font-family:courier }
.code-vb { font-size:10pt; font-family:courier }
.tabLabelOn { font-weight:bold }
.tabLabelOff {color: darkgray }
.literal-placeholder {color: darkblue; font-weight:bold}
A:link { color: black; }
A:visited { color: black; }
A:active { color: black; }
A:hover { color: blue }
</style>
<script language="javascript" type="text/javascript">
var req;
function getXML (command, url, qs) {
if (url == "" || url.substring (0, 4) != "http")
return;
var post_data = null;
req = getReq ();
req.onreadystatechange = stateChange;
if (command == "GET") {
url = url + "?" + qs;
} else {
post_data = qs;
}
req.open (command, url, true);
if (command == "POST")
req.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
req.send (post_data);
}
function stateChange () {
if (req.readyState == 4) {
var node = document.getElementById("testresult_div");
var text = "";
if (req.status == 200) {
node.innerHTML = "<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
} else {
var ht = "<b style='color: red'>" + formatXml (req.status + " - " + req.statusText) + "</b>";
if (req.responseText != "")
ht = ht + "\n<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
node.innerHTML = ht;
}
}
}
function formatXml (text)
{
var re = / /g;
text = text.replace (re, "&nbsp;");
re = /\t/g;
text = text.replace (re, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
re = /\<\s*(\/?)\s*(.*?)\s*(\/?)\s*\>/g;
text = text.replace (re,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = /{(\w*):(.*?)}/g;
text = text.replace (re,"<span style='color:$1'>$2</span>");
re = /"(.*?)"/g;
text = text.replace (re,"\"<span style='color:purple'>$1</span>\"");
re = /\r\n|\r|\n/g;
text = text.replace (re, "<br/>");
return text;
}
function getReq () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); // Firefox, Safari, ...
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function clearForm ()
{
document.getElementById("testFormResult").style.display="none";
}
</script>
</head>
<body>
<div class="title" style="margin-left:20px">
<span class="label">Web Service</span><br>
<%=WebServiceName%>
</div>
<!--
**********************************************************
Left panel
-->
<table border="0" width="100%" cellpadding="15px" cellspacing="15px">
<tr valign="top"><td width="150px" class="panel">
<div style="width:150px"></div>
<a class="method" href='<%=PageName%>'>Overview</a><br>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("wsdl")%>'>Service Description</a>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("proxy")%>'>Client proxy</a>
<br><br>
<asp:repeater id="BindingsRepeater" runat=server>
<itemtemplate name="itemtemplate">
<span class="bindingLabel"><%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%></span>
<asp:repeater id="OperationsRepeater" runat=server datasource='<%# ((Binding)Container.DataItem).Operations %>'>
<itemtemplate>
<a class="method" href="<%=PageName%>?<%=GetTabContext("op",null)%>op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%></a>
<div class="smallSeparator"></div>
</itemtemplate>
</asp:repeater>
<br>
</itemtemplate>
</asp:repeater>
</td><td class="panel">
<% if (CurrentPage == "main") {%>
<!--
**********************************************************
Web service overview
-->
<p class="label">Web Service Overview</p>
<%=WebServiceDescription%>
<br/><br/>
<% if (ProfileViolations != null && ProfileViolations.Count > 0) { %>
<p class="label">Basic Profile Conformance</p>
This web service does not conform to WS-I Basic Profile v1.1
<%
Response.Write ("<ul>");
foreach (BasicProfileViolation vio in ProfileViolations) {
Response.Write ("<li><b>" + vio.NormativeStatement + "</b>: " + vio.Details);
Response.Write ("<ul>");
foreach (string ele in vio.Elements)
Response.Write ("<li>" + ele + "</li>");
Response.Write ("</ul>");
Response.Write ("</li>");
}
Response.Write ("</ul>");
}%>
<%} if (DefaultBinding == null) {%>
This service does not contain any public web method.
<%} else if (CurrentPage == "op") {%>
<!--
**********************************************************
Operation description
-->
<span class="operationTitle"><%=CurrentOperationName%></span>
<br><br>
<% WriteTabs (); %>
<br><br><br>
<% if (CurrentTab == "main") { %>
<span class="label">Input Parameters</span>
<div class="smallSeparator"></div>
<% if (InParams.Count == 0) { %>
No input parameters<br>
<% } else { %>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="InputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<% } %>
<br>
<% if (OutParams.Count > 0) { %>
<span class="label">Output Parameters</span>
<div class="smallSeparator"></div>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="OutputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<br>
<% } %>
<span class="label">Remarks</span>
<div class="smallSeparator"></div>
<%=OperationDocumentation%>
<br><br>
<span class="label">Technical information</span>
<div class="smallSeparator"></div>
Format: <%=CurrentOperationFormat%>
<br>Supported protocols: <%=CurrentOperationProtocols%>
<% } %>
<!--
**********************************************************
Operation description - Test form
-->
<% if (CurrentTab == "test") {
if (CurrentOperationSupportsTest) {%>
Enter values for the parameters and click the 'Invoke' button to test this method:<br><br>
<form action="<%=PageName%>" method="GET">
<input type="hidden" name="page" value="<%=CurrentPage%>">
<input type="hidden" name="tab" value="<%=CurrentTab%>">
<input type="hidden" name="op" value="<%=CurrentOperationName%>">
<input type="hidden" name="bnd" value="<%=CurrentOperationBinding%>">
<input type="hidden" name="ext" value="testform">
<table class="paramFormTable" cellspacing="0" cellpadding="3">
<asp:repeater id="InputFormParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Name")%>:&nbsp;</td>
<td width="150"><input class="paramInput" type="text" size="20" name="<%#DataBinder.Eval(Container.DataItem, "Name")%>"></td>
</tr>
</itemtemplate>
</asp:repeater>
<tr><td></td><td><input class="button" type="submit" value="Invoke">&nbsp;<input class="button" type="button" onclick="clearForm()" value="Clear"></td></tr>
</table>
</form>
<div id="testFormResult" style="display:<%= (HasFormResult?"block":"none") %>">
The web service returned the following result:<br/><br/>
<div class="codePanel" id="testresult_div">
</div>
<script language="javascript">
getXML ("<%= GetOrPost () %>", "<%= GetTestResultUrl () %>", "<%= GetQS () %>");
</script>
</div>
<% } else {%>
The test form is not available for this operation because it has parameters with a complex structure.
<% } %>
<% } %>
<!--
**********************************************************
Operation description - Message Layout
-->
<% if (CurrentTab == "msg") { %>
The following are sample SOAP requests and responses for each protocol supported by this method:
<br/><br/>
<% if (IsOperationSupported ("Soap")) { %>
<span class="label">Soap</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpGet")) { %>
<span class="label">HTTP Get</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpPost")) { %>
<span class="label">HTTP Post</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", false)%></div></div>
<br/>
<% } %>
<% } %>
<%} else if (CurrentPage == "proxy") {%>
<!--
**********************************************************
Client Proxy
-->
<form action="<%=PageName%>" name="langForm" method="GET">
Select the language for which you want to generate a proxy
<input type="hidden" name="page" value="<%=CurrentPage%>">&nbsp;
<SELECT name="lang" onchange="langForm.submit()">
<%=GetOptionSel("cs",CurrentLanguage)%>C#</option>
<%=GetOptionSel("vb",CurrentLanguage)%>Visual Basic</option>
</SELECT>
&nbsp;&nbsp;
</form>
<br>
<span class="label"><%=CurrentProxytName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?code=" + CurrentLanguage%>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-<%=CurrentLanguage%>"><%=GetProxyCode ()%></div>
</div>
<%} else if (CurrentPage == "wsdl") {%>
<!--
**********************************************************
Service description
-->
<% if (descriptions.Count > 1 || schemas.Count > 1) {%>
The description of this web service is composed by several documents. Click on the document you want to see:
<ul>
<%
for (int n=0; n<descriptions.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=wsdl&docind=" + n + "'>WSDL document " + descriptions[n].TargetNamespace + "</a></li>");
for (int n=0; n<schemas.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=schema&docind=" + n + "'>Xml Schema " + schemas[n].TargetNamespace + "</a></li>");
%>
</ul>
<%} else {%>
<%}%>
<br>
<span class="label"><%=CurrentDocumentName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?" + CurrentDocType + "=" + CurrentDocInd %>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-xml"><%=GenerateDocument ()%></div>
</div>
<%}%>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</td>
<td width="20px"></td>
</tr>
</table>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="configProtectedData" type="System.Configuration.ProtectedConfigurationSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mscorlib" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="runtime" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="assemblyBinding" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="satelliteassemblies" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authorization" type="System.Web.Configuration.AuthorizationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="browserCaps" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="clientTarget" type="System.Web.Configuration.ClientTargetSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="compilation" type="System.Web.Configuration.CompilationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="customErrors" type="System.Web.Configuration.CustomErrorsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" />
<section name="globalization" type="System.Web.Configuration.GlobalizationSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="healthMonitoring" type="System.Web.Configuration.HealthMonitoringSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="hostingEnvironment" type="System.Web.Configuration.HostingEnvironmentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="httpCookies" type="System.Web.Configuration.HttpCookiesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpHandlers" type="System.Web.Configuration.HttpHandlersSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules" type="System.Web.Configuration.HttpModulesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpRuntime" type="System.Web.Configuration.HttpRuntimeSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="identity" type="System.Web.Configuration.IdentitySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="machineKey" type="System.Web.Configuration.MachineKeySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="membership" type="System.Web.Configuration.MembershipSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mobileControls" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="deviceFilters" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="pages" type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" allowLocation="false" />
<section name="profile" type="System.Web.Configuration.ProfileSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="roleManager" type="System.Web.Configuration.RoleManagerSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="securityPolicy" type="System.Web.Configuration.SecurityPolicySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="sessionPageState" type="System.Web.Configuration.SessionPageStateSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="sessionState" type="System.Web.Configuration.SessionStateSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="siteMap" type="System.Web.Configuration.SiteMapSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="trace" type="System.Web.Configuration.TraceSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="trust" type="System.Web.Configuration.TrustSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="urlMappings" type="System.Web.Configuration.UrlMappingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="webControls" type="System.Web.Configuration.WebControlsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webParts" type="System.Web.Configuration.WebPartsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webServices" type="System.Web.Services.Configuration.WebServicesSection, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="xhtmlConformance" type="System.Web.Configuration.XhtmlConformanceSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<sectionGroup name="caching" type="System.Web.Configuration.SystemWebCachingSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="cache" type="System.Web.Configuration.CacheSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCache" type="System.Web.Configuration.OutputCacheSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCacheSettings" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="sqlCacheDependency" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
<section name="monoSettings" type="System.Web.Configuration.MonoSettingsSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</sectionGroup>
<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="authenticationModules" type="System.Net.Configuration.AuthenticationModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="connectionManagement" type="System.Net.Configuration.ConnectionManagementSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="requestCaching" type="System.Net.Configuration.RequestCachingSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="settings" type="System.Net.Configuration.SettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webRequestModules" type="System.Net.Configuration.WebRequestModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.drawing" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<sectionGroup name="system.transactions" type="System.Transactions.Configuration.TransactionsSectionGroup, System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null">
<section name="defaultSettings" type="System.Transactions.Configuration.DefaultSettingsSection, System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>
<section name="machineSettings" type="System.Transactions.Configuration.MachineSettingsSection, System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
</sectionGroup>
<section name="system.webServer" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="LocalSqliteServer" connectionString="Data Source=|DataDirectory|/aspnetdb.sqlite;version=3" providerName="Mono.Data.Sqlite"/>
</connectionStrings>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
<providers>
<add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" keyContainerName="MonoFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
<add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" useMachineProtection="true" keyEntropy="" />
</providers>
</configProtectedData>
<system.net>
<authenticationModules>
<add type="System.Net.BasicClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.DigestClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.NtlmClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</authenticationModules>
<webRequestModules>
<add prefix="http" type="System.Net.HttpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="https" type="System.Net.HttpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="file" type="System.Net.FileWebRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="ftp" type="System.Net.FtpRequestCreator, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</webRequestModules>
</system.net>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http client" displayName="http client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="tcp client" displayName="tcp client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="ipc client" displayName="ipc client (delay loaded)" delayLoadAsClientChannel="true" />
</channels>
</application>
<channels>
<channel id="http" type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http client" type="System.Runtime.Remoting.Channels.Http.HttpClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http server" type="System.Runtime.Remoting.Channels.Http.HttpServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp" type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp client" type="System.Runtime.Remoting.Channels.Tcp.TcpClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp server" type="System.Runtime.Remoting.Channels.Tcp.TcpServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc" type="System.Runtime.Remoting.Channels.Ipc.IpcChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc client" type="System.Runtime.Remoting.Channels.Ipc.IpcClientChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc server" type="System.Runtime.Remoting.Channels.Ipc.IpcServerChannel, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</channels>
<channelSinkProviders>
<clientProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</clientProviders>
<serverProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<provider id="wsdl" type="System.Runtime.Remoting.MetadataServices.SdlChannelSinkProvider, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</serverProviders>
</channelSinkProviders>
</system.runtime.remoting>
<appSettings>
<!--<add key="yourkey" value="your value" /> -->
<!--<remove key="a key defined higher in the hierarchy" /> -->
<!--<clear/> Removes all defined settings -->
</appSettings>
<system.diagnostics>
<trace autoflush="false" indentsize="4" />
</system.diagnostics>
<system.drawing>
</system.drawing>
<system.data>
<DbProviderFactories>
<add name="Mono Sqlite Data Provider" invariant="Mono.Data.SqliteClient"
description="Mono Framework Data Provider for SQLite (old version)"
type="Mono.Data.SqliteClient.SqliteFactory, Mono.Data.SqliteClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Mono Sqlite Provider" invariant="Mono.Data.Sqlite"
description="Mono Framework Data Provider for SQLite (new version)"
type="Mono.Data.Sqlite.SqliteFactory, Mono.Data.Sqlite, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Odbc Data Provider" invariant="System.Data.Odbc"
description=".Net Framework Data Provider for Odbc"
type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb"
description=".Net Framework Data Provider for OleDb"
type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
description=".Net Framework Data Provider for Oracle"
type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Sybase Data Provider" invariant="Mono.Data.SybaseClient"
description=".Net Framework Data Provider for Sybase"
type="Mono.Data.SybaseClient.SybaseClientFactory, Mono.Data.SybaseClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
</DbProviderFactories>
</system.data>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass monoMD2="Mono.Security.Cryptography.MD2Managed, Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
<cryptoClass monoMD4="Mono.Security.Cryptography.MD4Managed, Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
</cryptoClasses>
<nameEntry name="MD2" class="monoMD2" />
<nameEntry name="MD4" class="monoMD4" />
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.2.840.113549.2.2" name="MD2" />
<oidEntry OID="1.2.840.113549.2.2" name="Mono.Security.Cryptography.MD2Managed" />
<oidEntry OID="1.2.840.113549.2.4" name="MD4" />
<oidEntry OID="1.2.840.113549.2.4" name="Mono.Security.Cryptography.MD4Managed" />
</oidMap>
</cryptographySettings>
</mscorlib>
<strongNames>
<pubTokenMapping>
<!-- ECMA key -->
<map Token="b77a5c561934e089" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (final) key -->
<map Token="b03f5f7f11d50a3a" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (Web Service Enhancement) key -->
<map Token="31bf3856ad364e35" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- IBM (DB2 Data Provider) key -->
<map Token="7c307b91aa13d208" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Silverlight 2.0 key -->
<map Token="7cec85d7bea7798e" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- XNA Framework key -->
<map Token="6d5c3888ef60e27d" PublicKey="0024000004800000940000000602000000240000525341310004000001000100f9a2641bac9847900d92a33d652ccc4e8b529360f908e7af53e57008b2a9a1938c32a160d47f795a23590557608d2c8d0c0e8846a052d070f9298281b8185343dbe5b479bd52de256f73c2a943e1a8a42065b5c918622dc14b1c0151dbd94d9a4543e7cd03e536b1b1d2d6d99af535d227ab9bdac76af9312a21d457bdf817e6" />
</pubTokenMapping>
</strongNames>
<system.web>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpSoap12"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
<conformanceWarnings>
<add name="BasicProfile1_1"/>
</conformanceWarnings>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
</webServices>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
<!-- <add name="AspNetSqlMembershipProvider" type="Mainsoft.Web.Security.GenericMembershipProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</membership>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="LocalSqlServer" />
<!-- <add name="AspNetSqlRoleProvider" type="Mainsoft.Web.Security.GenericRoleProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</roleManager>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
</system.web>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
<bindingElementExtensions>
<add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingElementExtensions>
<bindingExtensions>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
</extensions>
</system.serviceModel>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<settingsMap>
<map sectionType="System.Web.Configuration.MembershipSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.MembershipSectionMapper, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqliteMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
<map sectionType="System.Web.Configuration.RoleManagerSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.RoleManagerSectionMapper, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlRoleProvider"
type="System.Web.Security.SqliteRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
</settingsMap>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<monoSettings>
<compilersCompatibility>
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/nowarn:0169"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilersCompatibility>
</monoSettings>
<authorization>
<allow users="*" />
</authorization>
<httpHandlers>
<add verb="*" path="Trace.axd" type="System.Web.Handlers.TraceHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.master" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.skin" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.browser" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.sitemap" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.Config" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.dll" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
<add verb="*" path="*.svc" type="System.ServiceModel.Channels.SvcHttpHandlerFactory, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
<httpModules>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="RoleManager" type="System.Web.Security.RoleManagerModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="Session" type="System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpModules>
<authentication mode="Forms">
<forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<!--<user name="gonzalo" password="gonz"/>-->
</credentials>
</forms>
</authentication>
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"/>
<!--
culture="en-US"
uiculture="en-US" />
-->
<sessionState mode="InProc" />
<pages>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<!-- <add namespace="System.Web.UI.WebControls.WebParts" /> -->
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</pages>
<webControls clientScriptsLocation="/web_scripts" />
<compilation debug="false" defaultLanguage="c#" explicit="true" strict="false" >
<assemblies>
<!--<add assembly="mscorlib" /> -->
<add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
<add assembly="System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
<add assembly="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="*" /> <!-- Add assemblies in bin directory -->
</assemblies>
<expressionBuilders>
<add expressionPrefix="Resources"
type="System.Web.Compilation.ResourceExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="ConnectionStrings"
type="System.Web.Compilation.ConnectionStringsExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="AppSettings"
type="System.Web.Compilation.AppSettingsExpressionBuilder, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</expressionBuilders>
<buildProviders>
<add extension=".aspx" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider" />
<add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider" />
<add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider" />
<add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".resx" type="System.Web.Compilation.ResXBuildProvider" />
<add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider" />
<add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider" />
<add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider" />
<add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider" />
<add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider" />
</buildProviders>
</compilation>
<httpRuntime executionTimeout="110"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="5000" />
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="downlevel" userAgent="Unknown" />
</clientTarget>
<siteMap>
<providers>
<add name="AspNetXmlSiteMapProvider"
description="Default site map provider that reads in .sitemap xml files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
<!--
This file defines some of the browsers that Microsoft's implementation provides in
<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers\*.browser
It is not derived from any file distributed with Microsoft's implementation. Since
we can't distribute MS's browser files, we use browscap.ini to determine
browser capabilities. Then, if and only if the application contains App_Browser/*.browser
files and we are using .NET 2.0 or higher, we supplement the capabilities with the
information in those files and the files in this directory. The primary goal of this file
is provide browser definitions that might be referenced in App_Browser/*.browser files.
-->
<browsers>
<defaultBrowser id="Default">
</defaultBrowser>
<browser id="Default">
<identification>
<userAgent match="." />
</identification>
</browser>
<browser id="IE6to9" parentID="Default">
<identification>
<capability name="majorver" match="^[6-9]" />
<capability name="browser" match="^(IE|AOL)$" />
</identification>
</browser>
<browser id="Opera8to9" parentID="Default">
<identification>
<capability name="majorver" match="^[8-9]" />
<capability name="browser" match="^Opera$" />
</identification>
</browser>
<browser id="Safari" parentID="Default">
<identification>
<capability name="browser" match="^Safari$" />
</identification>
</browser>
<browser id="Mozilla" parentID="Default">
<identification>
<capability name="browser" match="^Mozilla" />
</identification>
</browser>
</browsers>
\ No newline at end of file
<%--
//
// DefaultWsdlHelpGenerator.aspx:
//
// Author:
// Lluis Sanchez Gual (lluis@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
//
--%>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml.Serialization" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Services.Description" %>
<%@ Import Namespace="System.Web.Services.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Resources" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.CodeDom" %>
<%@ Import Namespace="System.CodeDom.Compiler" %>
<%@ Import Namespace="Microsoft.CSharp" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<%@ Assembly name="System.Web.Services" %>
<%@ Page debug="true" %>
<html>
<script language="C#" runat="server">
ServiceDescriptionCollection descriptions;
XmlSchemas schemas;
string WebServiceName;
string WebServiceDescription;
string PageName;
string DefaultBinding;
ArrayList ServiceProtocols;
string CurrentOperationName;
string CurrentOperationBinding;
string OperationDocumentation;
string CurrentOperationFormat;
bool CurrentOperationSupportsTest;
ArrayList InParams;
ArrayList OutParams;
string CurrentOperationProtocols;
int CodeTextColumns = 95;
BasicProfileViolationCollection ProfileViolations;
void Page_Load(object sender, EventArgs e)
{
descriptions = (ServiceDescriptionCollection) Context.Items["wsdls"];
schemas = (XmlSchemas) Context.Items["schemas"];
ServiceDescription desc = descriptions [0];
if (schemas.Count == 0) schemas = desc.Types.Schemas;
Service service = desc.Services[0];
WebServiceName = service.Name;
if (desc.Bindings.Count == 0)
return;
DefaultBinding = desc.Bindings[0].Name;
WebServiceDescription = service.Documentation;
if (WebServiceDescription == "" || WebServiceDescription == null)
WebServiceDescription = "Description has not been provided";
ServiceProtocols = FindServiceProtocols (null);
CurrentOperationName = Request.QueryString["op"];
CurrentOperationBinding = Request.QueryString["bnd"];
if (CurrentOperationName != null) BuildOperationInfo ();
PageName = HttpUtility.UrlEncode (Path.GetFileName(Request.Path), Encoding.UTF8);
ArrayList list = new ArrayList ();
foreach (ServiceDescription sd in descriptions) {
foreach (Binding bin in sd.Bindings)
if (bin.Extensions.Find (typeof(SoapBinding)) != null) list.Add (bin);
}
BindingsRepeater.DataSource = list;
Page.DataBind();
ProfileViolations = new BasicProfileViolationCollection ();
foreach (WsiProfilesElement claims in ((WebServicesSection) WebConfigurationManager.GetSection("system.web/webServices")).ConformanceWarnings)
if (claims.Name != WsiProfiles.None)
WebServicesInteroperability.CheckConformance (claims.Name, descriptions, ProfileViolations);
}
void BuildOperationInfo ()
{
InParams = new ArrayList ();
OutParams = new ArrayList ();
Port port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
OperationDocumentation = oper.Documentation;
if (OperationDocumentation == null || OperationDocumentation == "")
OperationDocumentation = "No additional remarks";
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput)
BuildParameters (InParams, opm);
else if (opm is OperationOutput)
BuildParameters (OutParams, opm);
}
// Protocols supported by the operation
CurrentOperationProtocols = "";
WebServiceProtocols testProtocols = 0;
ArrayList prots = FindServiceProtocols (CurrentOperationName);
for (int n=0; n<prots.Count; n++) {
string prot = (string) prots [n];
if (n != 0) CurrentOperationProtocols += ", ";
CurrentOperationProtocols += prot;
if (prot == "HttpGet")
testProtocols |= WebServiceProtocols.HttpGet;
else if (prot == "HttpPost") {
testProtocols |= WebServiceProtocols.HttpPost;
if (Context.Request.IsLocal)
testProtocols |= WebServiceProtocols.HttpPostLocalhost;
}
}
CurrentOperationSupportsTest = (WebServicesSection.Current.EnabledProtocols & testProtocols) != 0;
// Operation format
OperationBinding obin = FindOperation (binding, CurrentOperationName);
if (obin != null)
CurrentOperationFormat = GetOperationFormat (obin);
InputParamsRepeater.DataSource = InParams;
InputFormParamsRepeater.DataSource = InParams;
OutputParamsRepeater.DataSource = OutParams;
}
void BuildParameters (ArrayList list, OperationMessage opm)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
XmlSchemaComplexType ctype;
if (part.Element == XmlQualifiedName.Empty)
{
ctype = (XmlSchemaComplexType) schemas.Find (part.Type, typeof(XmlSchemaComplexType));
}
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
ctype = (XmlSchemaComplexType) elem.SchemaType;
}
XmlSchemaSequence seq = ctype.Particle as XmlSchemaSequence;
if (seq == null) return;
foreach (XmlSchemaObject ob in seq.Items)
{
Parameter p = new Parameter();
p.Description = "No additional remarks";
if (ob is XmlSchemaElement)
{
XmlSchemaElement selem = GetRefElement ((XmlSchemaElement)ob);
p.Name = selem.Name;
p.Type = selem.SchemaTypeName.Name;
}
else
{
p.Name = "Unknown";
p.Type = "Unknown";
}
list.Add (p);
}
}
else
{
foreach (MessagePart part in msg.Parts)
{
Parameter p = new Parameter ();
p.Description = "No additional remarks";
p.Name = part.Name;
if (part.Element == XmlQualifiedName.Empty)
p.Type = part.Type.Name;
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
p.Type = elem.SchemaTypeName.Name;
}
list.Add (p);
}
}
}
string GetOperationFormat (OperationBinding obin)
{
string format = "";
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
format = sob.Style.ToString ();
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
format += " / " + sbb.Use;
}
return format;
}
XmlSchemaElement GetRefElement (XmlSchemaElement elem)
{
if (!elem.RefName.IsEmpty)
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
else
return elem;
}
ArrayList FindServiceProtocols(string operName)
{
ArrayList table = new ArrayList ();
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
string prot = null;
Binding bin = descriptions.GetBinding (port.Binding);
if (bin.Extensions.Find (typeof(SoapBinding)) != null)
prot = "Soap";
else
{
HttpBinding hb = (HttpBinding) bin.Extensions.Find (typeof(HttpBinding));
if (hb != null && hb.Verb == "POST") prot = "HttpPost";
else if (hb != null && hb.Verb == "GET") prot = "HttpGet";
}
if (prot != null && operName != null)
{
if (FindOperation (bin, operName) == null)
prot = null;
}
if (prot != null && !table.Contains (prot))
table.Add (prot);
}
return table;
}
Port FindPort (string portName, string protocol)
{
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
if (portName == null)
{
Binding binding = descriptions.GetBinding (port.Binding);
if (GetProtocol (binding) == protocol) return port;
}
else if (port.Name == portName)
return port;
}
return null;
}
string GetProtocol (Binding binding)
{
if (binding.Extensions.Find (typeof(SoapBinding)) != null) return "Soap";
HttpBinding hb = (HttpBinding) binding.Extensions.Find (typeof(HttpBinding));
if (hb == null) return "";
if (hb.Verb == "POST") return "HttpPost";
if (hb.Verb == "GET") return "HttpGet";
return "";
}
Operation FindOperation (PortType portType, string name)
{
foreach (Operation oper in portType.Operations) {
if (oper.Messages.Input.Name != null) {
if (oper.Messages.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
OperationBinding FindOperation (Binding binding, string name)
{
foreach (OperationBinding oper in binding.Operations) {
if (oper.Input.Name != null) {
if (oper.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
string FormatBindingName (string name)
{
if (name == DefaultBinding) return "Methods";
else return "Methods for binding<br>" + name;
}
string GetOpName (object op)
{
OperationBinding ob = op as OperationBinding;
if (ob == null) return "";
if (ob.Input.Name != null) return ob.Input.Name;
else return ob.Name;
}
bool HasFormResult
{
get { return Request.QueryString ["ext"] == "testform"; }
}
class NoCheckCertificatePolicy : ICertificatePolicy {
public bool CheckValidationResult (ServicePoint a, X509Certificate b, WebRequest c, int d)
{
return true;
}
}
string GetOrPost ()
{
return (CurrentOperationProtocols.IndexOf ("HttpGet") >= 0) ? "GET" : "POST";
}
string GetQS ()
{
bool fill = false;
string qs = "";
NameValueCollection query_string = Request.QueryString;
for (int n = 0; n < query_string.Count; n++) {
if (fill) {
if (qs != "") qs += "&";
qs += query_string.GetKey(n) + "=" + Server.UrlEncode (query_string [n]);
}
if (query_string.GetKey(n) == "ext") fill = true;
}
return qs;
}
string GetTestResultUrl ()
{
if (!HasFormResult) return "";
string location = null;
ServiceDescription desc = descriptions [0];
Service service = desc.Services[0];
foreach (Port port in service.Ports)
if (port.Name == CurrentOperationBinding)
{
SoapAddressBinding sbi = (SoapAddressBinding) port.Extensions.Find (typeof(SoapAddressBinding));
if (sbi != null)
location = sbi.Location;
}
if (location == null)
return "Could not locate web service";
return location + "/" + CurrentOperationName;
}
string GenerateOperationMessages (string protocol, bool generateInput)
{
if (!IsOperationSupported (protocol)) return "";
Port port;
if (protocol != "Soap") port = FindPort (null, protocol);
else port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
OperationBinding obin = FindOperation (binding, CurrentOperationName);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
HtmlSampleGenerator sg = new HtmlSampleGenerator (descriptions, schemas);
string txt = sg.GenerateMessage (port, obin, oper, protocol, generateInput);
if (protocol == "Soap") txt = WrapText (txt,CodeTextColumns);
txt = ColorizeXml (txt);
txt = txt.Replace ("@placeholder!","<span class='literal-placeholder'>");
txt = txt.Replace ("!placeholder@","</span>");
return txt;
}
bool IsOperationSupported (string protocol)
{
if (CurrentPage != "op" || CurrentTab != "msg") return false;
if (protocol == "Soap") return true;
Port port = FindPort (null, protocol);
if (port == null) return false;
Binding binding = descriptions.GetBinding (port.Binding);
if (binding == null) return false;
return FindOperation (binding, CurrentOperationName) != null;
}
//
// Proxy code generation
//
string GetProxyCode ()
{
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add (codeNamespace);
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
foreach (ServiceDescription sd in descriptions)
importer.AddServiceDescription(sd, null, null);
foreach (XmlSchema sc in schemas)
importer.Schemas.Add (sc);
importer.Import(codeNamespace, codeUnit);
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
CodeDomProvider provider = GetProvider (langId);
ICodeGenerator generator = provider.CreateGenerator();
CodeGeneratorOptions options = new CodeGeneratorOptions();
StringWriter sw = new StringWriter ();
generator.GenerateCodeFromCompileUnit(codeUnit, sw, options);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), langId);
}
public string CurrentLanguage
{
get {
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
return langId;
}
}
public string CurrentProxytName
{
get {
string lan = CurrentLanguage == "cs" ? "C#" : "Visual Basic";
return lan + " Client Proxy";
}
}
private CodeDomProvider GetProvider(string langId)
{
switch (langId.ToUpper())
{
case "CS": return new CSharpCodeProvider();
case "VB": return new VBCodeProvider();
default: return null;
}
}
//
// Document generation
//
class UTF8StringWriter : StringWriter {
public override Encoding Encoding {
get { return Encoding.UTF8; }
}
}
string GenerateDocument ()
{
UTF8StringWriter sw = new UTF8StringWriter ();
if (CurrentDocType == "wsdl")
descriptions [CurrentDocInd].Write (sw);
else if (CurrentDocType == "schema")
schemas [CurrentDocInd].Write (sw);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), "xml");
}
public string CurrentDocType
{
get { return Request.QueryString ["doctype"] != null ? Request.QueryString ["doctype"] : "wsdl"; }
}
public int CurrentDocInd
{
get { return Request.QueryString ["docind"] != null ? int.Parse (Request.QueryString ["docind"]) : 0; }
}
public string CurrentDocumentName
{
get {
if (CurrentDocType == "wsdl")
return "WSDL document for namespace \"" + descriptions [CurrentDocInd].TargetNamespace + "\"";
else
return "Xml Schema for namespace \"" + schemas [CurrentDocInd].TargetNamespace + "\"";
}
}
//
// Pages and tabs
//
bool firstTab = true;
ArrayList disabledTabs = new ArrayList ();
string CurrentTab
{
get { return Request.QueryString["tab"] != null ? Request.QueryString["tab"] : "main" ; }
}
string CurrentPage
{
get { return Request.QueryString["page"] != null ? Request.QueryString["page"] : "main" ; }
}
void WriteTabs ()
{
if (CurrentOperationName != null)
{
WriteTab ("main","Overview");
WriteTab ("test","Test Form");
WriteTab ("msg","Message Layout");
}
}
void WriteTab (string id, string label)
{
if (!firstTab) Response.Write("&nbsp;|&nbsp;");
firstTab = false;
string cname = CurrentTab == id ? "tabLabelOn" : "tabLabelOff";
Response.Write ("<a href='" + PageName + "?" + GetPageContext(null) + GetDataContext() + "tab=" + id + "' style='text-decoration:none'>");
Response.Write ("<span class='" + cname + "'>" + label + "</span>");
Response.Write ("</a>");
}
string GetTabContext (string pag, string tab)
{
if (tab == null) tab = CurrentTab;
if (pag == null) pag = CurrentPage;
if (pag != CurrentPage) tab = "main";
return "page=" + pag + "&tab=" + tab + "&";
}
string GetPageContext (string pag)
{
if (pag == null) pag = CurrentPage;
return "page=" + pag + "&";
}
class Tab
{
public string Id;
public string Label;
}
//
// Syntax coloring
//
static string keywords_cs =
"(\\babstract\\b|\\bevent\\b|\\bnew\\b|\\bstruct\\b|\\bas\\b|\\bexplicit\\b|\\bnull\\b|\\bswitch\\b|\\bbase\\b|\\bextern\\b|" +
"\\bobject\\b|\\bthis\\b|\\bbool\\b|\\bfalse\\b|\\boperator\\b|\\bthrow\\b|\\bbreak\\b|\\bfinally\\b|\\bout\\b|\\btrue\\b|" +
"\\bbyte\\b|\\bfixed\\b|\\boverride\\b|\\btry\\b|\\bcase\\b|\\bfloat\\b|\\bparams\\b|\\btypeof\\b|\\bcatch\\b|\\bfor\\b|" +
"\\bprivate\\b|\\buint\\b|\\bchar\\b|\\bforeach\\b|\\bprotected\\b|\\bulong\\b|\\bchecked\\b|\\bgoto\\b|\\bpublic\\b|" +
"\\bunchecked\\b|\\bclass\\b|\\bif\\b|\\breadonly\\b|\\bunsafe\\b|\\bconst\\b|\\bimplicit\\b|\\bref\\b|\\bushort\\b|" +
"\\bcontinue\\b|\\bin\\b|\\breturn\\b|\\busing\\b|\\bdecimal\\b|\\bint\\b|\\bsbyte\\b|\\bvirtual\\b|\\bdefault\\b|" +
"\\binterface\\b|\\bsealed\\b|\\bvolatile\\b|\\bdelegate\\b|\\binternal\\b|\\bshort\\b|\\bvoid\\b|\\bdo\\b|\\bis\\b|" +
"\\bsizeof\\b|\\bwhile\\b|\\bdouble\\b|\\block\\b|\\bstackalloc\\b|\\belse\\b|\\blong\\b|\\bstatic\\b|\\benum\\b|" +
"\\bnamespace\\b|\\bstring\\b)";
static string keywords_vb =
"(\\bAddHandler\\b|\\bAddressOf\\b|\\bAlias\\b|\\bAnd\\b|\\bAndAlso\\b|\\bAnsi\\b|\\bAs\\b|\\bAssembly\\b|" +
"\\bAuto\\b|\\bBoolean\\b|\\bByRef\\b|\\bByte\\b|\\bByVal\\b|\\bCall\\b|\\bCase\\b|\\bCatch\\b|" +
"\\bCBool\\b|\\bCByte\\b|\\bCChar\\b|\\bCDate\\b|\\bCDec\\b|\\bCDbl\\b|\\bChar\\b|\\bCInt\\b|" +
"\\bClass\\b|\\bCLng\\b|\\bCObj\\b|\\bConst\\b|\\bCShort\\b|\\bCSng\\b|\\bCStr\\b|\\bCType\\b|" +
"\\bDate\\b|\\bDecimal\\b|\\bDeclare\\b|\\bDefault\\b|\\bDelegate\\b|\\bDim\\b|\\bDirectCast\\b|\\bDo\\b|" +
"\\bDouble\\b|\\bEach\\b|\\bElse\\b|\\bElseIf\\b|\\bEnd\\b|\\bEnum\\b|\\bErase\\b|\\bError\\b|" +
"\\bEvent\\b|\\bExit\\b|\\bFalse\\b|\\bFinally\\b|\\bFor\\b|\\bFriend\\b|\\bFunction\\b|\\bGet\\b|" +
"\\bGetType\\b|\\bGoSub\\b|\\bGoTo\\b|\\bHandles\\b|\\bIf\\b|\\bImplements\\b|\\bImports\\b|\\bIn\\b|" +
"\\bInherits\\b|\\bInteger\\b|\\bInterface\\b|\\bIs\\b|\\bLet\\b|\\bLib\\b|\\bLike\\b|\\bLong\\b|" +
"\\bLoop\\b|\\bMe\\b|\\bMod\\b|\\bModule\\b|\\bMustInherit\\b|\\bMustOverride\\b|\\bMyBase\\b|\\bMyClass\\b|" +
"\\bNamespace\\b|\\bNew\\b|\\bNext\\b|\\bNot\\b|\\bNothing\\b|\\bNotInheritable\\b|\\bNotOverridable\\b|\\bObject\\b|" +
"\\bOn\\b|\\bOption\\b|\\bOptional\\b|\\bOr\\b|\\bOrElse\\b|\\bOverloads\\b|\\bOverridable\\b|\\bOverrides\\b|" +
"\\bParamArray\\b|\\bPreserve\\b|\\bPrivate\\b|\\bProperty\\b|\\bProtected\\b|\\bPublic\\b|\\bRaiseEvent\\b|\\bReadOnly\\b|" +
"\\bReDim\\b|\\bREM\\b|\\bRemoveHandler\\b|\\bResume\\b|\\bReturn\\b|\\bSelect\\b|\\bSet\\b|\\bShadows\\b|" +
"\\bShared\\b|\\bShort\\b|\\bSingle\\b|\\bStatic\\b|\\bStep\\b|\\bStop\\b|\\bString\\b|\\bStructure\\b|" +
"\\bSub\\b|\\bSyncLock\\b|\\bThen\\b|\\bThrow\\b|\\bTo\\b|\\bTrue\\b|\\bTry\\b|\\bTypeOf\\b|" +
"\\bUnicode\\b|\\bUntil\\b|\\bVariant\\b|\\bWhen\\b|\\bWhile\\b|\\bWith\\b|\\bWithEvents\\b|\\bWriteOnly\\b|\\bXor\\b)";
string Colorize (string text, string lang)
{
if (lang == "xml") return ColorizeXml (text);
else if (lang == "cs") return ColorizeCs (text);
else if (lang == "vb") return ColorizeVb (text);
else return text;
}
string ColorizeXml (string text)
{
text = text.Replace (" ", "&nbsp;");
Regex re = new Regex ("\r\n|\r|\n");
text = re.Replace (text, "_br_");
re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
text = re.Replace (text,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = new Regex ("\\{(\\w*):([\\s\\S]*?)\\}");
text = re.Replace (text,"<span style='color:$1'>$2</span>");
re = new Regex ("\"(.*?)\"");
text = re.Replace (text,"\"<span style='color:purple'>$1</span>\"");
text = text.Replace ("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("_br_", "<br>");
return text;
}
string ColorizeCs (string text)
{
text = text.Replace (" ", "&nbsp;");
text = text.Replace ("<", "&lt;");
text = text.Replace (">", "&gt;");
Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("//(((.(?!\"</span>))|\"(((?!\").)*)\"</span>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_cs);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
string ColorizeVb (string text)
{
text = text.Replace (" ", "&nbsp;");
/* Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("'(((.(?!\"\\<\\/span\\>))|\"(((?!\").)*)\"\\<\\/span\\>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_vb);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
*/
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
//
// Helper methods and classes
//
string GetDataContext ()
{
return "op=" + CurrentOperationName + "&bnd=" + CurrentOperationBinding + "&";
}
string GetOptionSel (string v1, string v2)
{
string op = "<option ";
if (v1 == v2) op += "selected ";
return op + "value='" + v1 + "'>";
}
string WrapText (string text, int maxChars)
{
text = text.Replace(" />","/>");
string linspace = null;
int lincount = 0;
int breakpos = 0;
int linstart = 0;
bool inquotes = false;
char lastc = ' ';
string sublineIndent = "";
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
for (int n=0; n<text.Length; n++)
{
char c = text [n];
if (c=='\r' || c=='\n' || n==text.Length-1)
{
sb.Append (linspace + sublineIndent + text.Substring (linstart, n-linstart+1));
linspace = null;
lincount = 0;
linstart = n+1;
breakpos = linstart;
sublineIndent = "";
lastc = c;
continue;
}
if (lastc==',' || lastc=='(')
{
if (!inquotes) breakpos = n;
}
if (lincount > maxChars && breakpos >= linstart)
{
if (linspace != null)
sb.Append (linspace + sublineIndent);
sb.Append (text.Substring (linstart, breakpos-linstart));
sb.Append ("\n");
sublineIndent = " ";
lincount = linspace.Length + sublineIndent.Length + (n-breakpos);
linstart = breakpos;
}
if (c==' ' || c=='\t')
{
if (!inquotes)
breakpos = n;
}
else if (c=='"')
{
inquotes = !inquotes;
}
else
if (linspace == null) {
linspace = text.Substring (linstart, n-linstart);
linstart = n;
}
lincount++;
lastc = c;
}
return sb.ToString ();
}
class Parameter
{
string name;
string type;
string description;
public string Name { get { return name; } set { name = value; } }
public string Type { get { return type; } set { type = value; } }
public string Description { get { return description; } set { description = value; } }
}
public class HtmlSampleGenerator: SampleGenerator
{
public HtmlSampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
: base (services, schemas)
{
}
protected override string GetLiteral (string s)
{
return "@placeholder!" + s + "!placeholder@";
}
}
public class SampleGenerator
{
protected ServiceDescriptionCollection descriptions;
protected XmlSchemas schemas;
XmlSchemaElement anyElement;
ArrayList queue;
SoapBindingUse currentUse;
XmlDocument document = new XmlDocument ();
static readonly XmlQualifiedName anyType = new XmlQualifiedName ("anyType",XmlSchema.Namespace);
static readonly XmlQualifiedName arrayType = new XmlQualifiedName ("Array","http://schemas.xmlsoap.org/soap/encoding/");
static readonly XmlQualifiedName arrayTypeRefName = new XmlQualifiedName ("arrayType","http://schemas.xmlsoap.org/soap/encoding/");
const string SoapEnvelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
const string WsdlNamespace = "http://schemas.xmlsoap.org/wsdl/";
const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
class EncodedType
{
public EncodedType (string ns, XmlSchemaElement elem) { Namespace = ns; Element = elem; }
public string Namespace;
public XmlSchemaElement Element;
}
public SampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
{
descriptions = services;
this.schemas = schemas;
queue = new ArrayList ();
}
public string GenerateMessage (Port port, OperationBinding obin, Operation oper, string protocol, bool generateInput)
{
OperationMessage msg = null;
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput && generateInput) msg = opm;
else if (opm is OperationOutput && !generateInput) msg = opm;
}
if (msg == null) return null;
switch (protocol) {
case "Soap": return GenerateHttpSoapMessage (port, obin, oper, msg);
case "HttpGet": return GenerateHttpGetMessage (port, obin, oper, msg);
case "HttpPost": return GenerateHttpPostMessage (port, obin, oper, msg);
}
return "Unknown protocol";
}
public string GenerateHttpSoapMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
SoapAddressBinding sab = port.Extensions.Find (typeof(SoapAddressBinding)) as SoapAddressBinding;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
req += "POST " + new Uri (sab.Location).AbsolutePath + "\n";
req += "SOAPAction: " + sob.SoapAction + "\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
}
req += GenerateSoapMessage (obin, oper, msg);
return req;
}
public string GenerateHttpGetMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location + "?" + BuildQueryString (msg);
req += "GET " + location + "\n";
req += "Host: " + GetLiteral ("string");
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
MimeXmlBinding mxb = (MimeXmlBinding) obin.Output.Extensions.Find (typeof(MimeXmlBinding)) as MimeXmlBinding;
if (mxb == null) return req;
Message message = descriptions.GetMessage (msg.Message);
XmlQualifiedName ename = null;
foreach (MessagePart part in message.Parts)
if (part.Name == mxb.Part) ename = part.Element;
if (ename == null) return req + GetLiteral("string");
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
currentUse = SoapBindingUse.Literal;
WriteRootElementSample (xtw, ename);
xtw.Close ();
req += sw.ToString ();
}
return req;
}
public string GenerateHttpPostMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location;
req += "POST " + location + "\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
req += BuildQueryString (msg);
}
else return GenerateHttpGetMessage (port, obin, oper, msg);
return req;
}
string BuildQueryString (OperationMessage opm)
{
string s = "";
Message msg = descriptions.GetMessage (opm.Message);
foreach (MessagePart part in msg.Parts)
{
if (s.Length != 0) s += "&";
s += part.Name + "=" + GetLiteral (part.Type.Name);
}
return s;
}
public string GenerateSoapMessage (OperationBinding obin, Operation oper, OperationMessage msg)
{
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
SoapBindingStyle style = (sob != null) ? sob.Style : SoapBindingStyle.Document;
MessageBinding msgbin = (msg is OperationInput) ? (MessageBinding) obin.Input : (MessageBinding)obin.Output;
SoapBodyBinding sbb = msgbin.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
SoapBindingUse bodyUse = (sbb != null) ? sbb.Use : SoapBindingUse.Literal;
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument ();
xtw.WriteStartElement ("soap", "Envelope", SoapEnvelopeNamespace);
xtw.WriteAttributeString ("xmlns", "xsi", null, XmlSchema.InstanceNamespace);
xtw.WriteAttributeString ("xmlns", "xsd", null, XmlSchema.Namespace);
if (bodyUse == SoapBindingUse.Encoded)
{
xtw.WriteAttributeString ("xmlns", "soapenc", null, SoapEncodingNamespace);
xtw.WriteAttributeString ("xmlns", "tns", null, msg.Message.Namespace);
}
// Serialize headers
bool writtenHeader = false;
foreach (object ob in msgbin.Extensions)
{
SoapHeaderBinding hb = ob as SoapHeaderBinding;
if (hb == null) continue;
if (!writtenHeader) {
xtw.WriteStartElement ("soap", "Header", SoapEnvelopeNamespace);
writtenHeader = true;
}
WriteHeader (xtw, hb);
}
if (writtenHeader)
xtw.WriteEndElement ();
// Serialize body
xtw.WriteStartElement ("soap", "Body", SoapEnvelopeNamespace);
currentUse = bodyUse;
WriteBody (xtw, oper, msg, sbb, style);
xtw.WriteEndElement ();
xtw.WriteEndElement ();
xtw.Close ();
return sw.ToString ();
}
void WriteHeader (XmlTextWriter xtw, SoapHeaderBinding header)
{
Message msg = descriptions.GetMessage (header.Message);
if (msg == null) throw new InvalidOperationException ("Message " + header.Message + " not found");
MessagePart part = msg.Parts [header.Part];
if (part == null) throw new InvalidOperationException ("Message part " + header.Part + " not found in message " + header.Message);
currentUse = header.Use;
if (currentUse == SoapBindingUse.Literal)
WriteRootElementSample (xtw, part.Element);
else
WriteTypeSample (xtw, part.Type);
}
void WriteBody (XmlTextWriter xtw, Operation oper, OperationMessage opm, SoapBodyBinding sbb, SoapBindingStyle style)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
if (part.Element == XmlQualifiedName.Empty)
WriteTypeSample (xtw, part.Type);
else
WriteRootElementSample (xtw, part.Element);
}
else
{
string elemName = oper.Name;
string ns = "";
if (opm is OperationOutput) elemName += "Response";
if (style == SoapBindingStyle.Rpc) {
xtw.WriteStartElement (elemName, sbb.Namespace);
ns = sbb.Namespace;
}
foreach (MessagePart part in msg.Parts)
{
if (part.Element == XmlQualifiedName.Empty)
{
XmlSchemaElement elem = new XmlSchemaElement ();
elem.SchemaTypeName = part.Type;
elem.Name = part.Name;
WriteElementSample (xtw, ns, elem);
}
else
WriteRootElementSample (xtw, part.Element);
}
if (style == SoapBindingStyle.Rpc)
xtw.WriteEndElement ();
}
WriteQueuedTypeSamples (xtw);
}
void WriteRootElementSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (qname, typeof(XmlSchemaElement));
if (elem == null) throw new InvalidOperationException ("Element not found: " + qname);
WriteElementSample (xtw, qname.Namespace, elem);
}
void WriteElementSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
bool sharedAnnType = false;
XmlQualifiedName root;
if (!elem.RefName.IsEmpty) {
XmlSchemaElement refElem = FindRefElement (elem);
if (refElem == null) throw new InvalidOperationException ("Global element not found: " + elem.RefName);
root = elem.RefName;
elem = refElem;
sharedAnnType = true;
}
else
root = new XmlQualifiedName (elem.Name, ns);
if (!elem.SchemaTypeName.IsEmpty)
{
XmlSchemaComplexType st = FindComplexTyype (elem.SchemaTypeName);
if (st != null)
WriteComplexTypeSample (xtw, st, root);
else
{
xtw.WriteStartElement (root.Name, root.Namespace);
if (currentUse == SoapBindingUse.Encoded)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, elem.SchemaTypeName));
xtw.WriteString (GetLiteral (FindBuiltInType (elem.SchemaTypeName)));
xtw.WriteEndElement ();
}
}
else if (elem.SchemaType == null)
{
xtw.WriteStartElement ("any");
xtw.WriteEndElement ();
}
else
WriteComplexTypeSample (xtw, (XmlSchemaComplexType) elem.SchemaType, root);
}
void WriteTypeSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaComplexType ctype = FindComplexTyype (qname);
if (ctype != null) {
WriteComplexTypeSample (xtw, ctype, qname);
return;
}
XmlSchemaSimpleType stype = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (stype != null) {
WriteSimpleTypeSample (xtw, stype);
return;
}
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
throw new InvalidOperationException ("Type not found: " + qname);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName)
{
WriteComplexTypeSample (xtw, stype, rootName, -1);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName, int id)
{
string ns = rootName.Namespace;
if (rootName.Name.IndexOf ("[]") != -1) rootName = arrayType;
if (currentUse == SoapBindingUse.Encoded) {
string pref = xtw.LookupPrefix (rootName.Namespace);
if (pref == null) pref = "q1";
xtw.WriteStartElement (pref, rootName.Name, rootName.Namespace);
ns = "";
}
else
xtw.WriteStartElement (rootName.Name, rootName.Namespace);
if (id != -1)
{
xtw.WriteAttributeString ("id", "id" + id);
if (rootName != arrayType)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, rootName));
}
WriteComplexTypeAttributes (xtw, stype);
WriteComplexTypeElements (xtw, ns, stype);
xtw.WriteEndElement ();
}
void WriteComplexTypeAttributes (XmlTextWriter xtw, XmlSchemaComplexType stype)
{
WriteAttributes (xtw, stype.Attributes, stype.AnyAttribute);
}
Dictionary<XmlSchemaComplexType,int> recursed_types = new Dictionary<XmlSchemaComplexType,int> ();
void WriteComplexTypeElements (XmlTextWriter xtw, string ns, XmlSchemaComplexType stype)
{
int prev = 0;
if (recursed_types.ContainsKey (stype))
prev = recursed_types [stype];
if (prev > 1)
return;
recursed_types [stype] = ++prev;
if (stype.Particle != null)
WriteParticleComplexContent (xtw, ns, stype.Particle);
else
{
if (stype.ContentModel is XmlSchemaSimpleContent)
WriteSimpleContent (xtw, (XmlSchemaSimpleContent)stype.ContentModel);
else if (stype.ContentModel is XmlSchemaComplexContent)
WriteComplexContent (xtw, ns, (XmlSchemaComplexContent)stype.ContentModel);
}
prev = recursed_types [stype];
recursed_types [stype] = --prev;
}
void WriteAttributes (XmlTextWriter xtw, XmlSchemaObjectCollection atts, XmlSchemaAnyAttribute anyat)
{
foreach (XmlSchemaObject at in atts)
{
if (at is XmlSchemaAttribute)
{
string ns;
XmlSchemaAttribute attr = (XmlSchemaAttribute)at;
XmlSchemaAttribute refAttr = attr;
// refAttr.Form; TODO
if (!attr.RefName.IsEmpty) {
refAttr = FindRefAttribute (attr.RefName);
if (refAttr == null) throw new InvalidOperationException ("Global attribute not found: " + attr.RefName);
}
string val;
if (!refAttr.SchemaTypeName.IsEmpty) val = FindBuiltInType (refAttr.SchemaTypeName);
else val = FindBuiltInType ((XmlSchemaSimpleType) refAttr.SchemaType);
xtw.WriteAttributeString (refAttr.Name, val);
}
else if (at is XmlSchemaAttributeGroupRef)
{
XmlSchemaAttributeGroupRef gref = (XmlSchemaAttributeGroupRef)at;
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
WriteAttributes (xtw, grp.Attributes, grp.AnyAttribute);
}
}
if (anyat != null)
xtw.WriteAttributeString ("custom-attribute","value");
}
void WriteParticleComplexContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle)
{
WriteParticleContent (xtw, ns, particle, false);
}
void WriteParticleContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle, bool multiValue)
{
if (particle is XmlSchemaGroupRef)
particle = GetRefGroupParticle ((XmlSchemaGroupRef)particle);
if (particle.MaxOccurs > 1) multiValue = true;
if (particle is XmlSchemaSequence) {
WriteSequenceContent (xtw, ns, ((XmlSchemaSequence)particle).Items, multiValue);
}
else if (particle is XmlSchemaChoice) {
if (((XmlSchemaChoice)particle).Items.Count == 1)
WriteSequenceContent (xtw, ns, ((XmlSchemaChoice)particle).Items, multiValue);
else
WriteChoiceContent (xtw, ns, (XmlSchemaChoice)particle, multiValue);
}
else if (particle is XmlSchemaAll) {
WriteSequenceContent (xtw, ns, ((XmlSchemaAll)particle).Items, multiValue);
}
}
void WriteSequenceContent (XmlTextWriter xtw, string ns, XmlSchemaObjectCollection items, bool multiValue)
{
foreach (XmlSchemaObject item in items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteContentItem (XmlTextWriter xtw, string ns, XmlSchemaObject item, bool multiValue)
{
if (item is XmlSchemaGroupRef)
item = GetRefGroupParticle ((XmlSchemaGroupRef)item);
if (item is XmlSchemaElement)
{
XmlSchemaElement elem = (XmlSchemaElement) item;
XmlSchemaElement refElem;
if (!elem.RefName.IsEmpty) refElem = FindRefElement (elem);
else refElem = elem;
int num = (elem.MaxOccurs == 1 && !multiValue) ? 1 : 2;
for (int n=0; n<num; n++)
{
if (currentUse == SoapBindingUse.Literal)
WriteElementSample (xtw, ns, refElem);
else
WriteRefTypeSample (xtw, ns, refElem);
}
}
else if (item is XmlSchemaAny)
{
xtw.WriteString (GetLiteral ("xml"));
}
else if (item is XmlSchemaParticle) {
WriteParticleContent (xtw, ns, (XmlSchemaParticle)item, multiValue);
}
}
void WriteChoiceContent (XmlTextWriter xtw, string ns, XmlSchemaChoice choice, bool multiValue)
{
foreach (XmlSchemaObject item in choice.Items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteSimpleContent (XmlTextWriter xtw, XmlSchemaSimpleContent content)
{
XmlSchemaSimpleContentExtension ext = content.Content as XmlSchemaSimpleContentExtension;
if (ext != null)
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
XmlQualifiedName qname = GetContentBaseType (content.Content);
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
}
string FindBuiltInType (XmlQualifiedName qname)
{
if (qname.Namespace == XmlSchema.Namespace)
return qname.Name;
XmlSchemaComplexType ct = FindComplexTyype (qname);
if (ct != null)
{
XmlSchemaSimpleContent sc = ct.ContentModel as XmlSchemaSimpleContent;
if (sc == null) throw new InvalidOperationException ("Invalid schema");
return FindBuiltInType (GetContentBaseType (sc.Content));
}
XmlSchemaSimpleType st = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (st != null)
return FindBuiltInType (st);
throw new InvalidOperationException ("Definition of type " + qname + " not found");
}
string FindBuiltInType (XmlSchemaSimpleType st)
{
if (st.Content is XmlSchemaSimpleTypeRestriction) {
return FindBuiltInType (GetContentBaseType (st.Content));
}
else if (st.Content is XmlSchemaSimpleTypeList) {
string s = FindBuiltInType (GetContentBaseType (st.Content));
return s + " " + s + " ...";
}
else if (st.Content is XmlSchemaSimpleTypeUnion)
{
//Check if all types of the union are equal. If not, then will use anyType.
XmlSchemaSimpleTypeUnion uni = (XmlSchemaSimpleTypeUnion) st.Content;
string utype = null;
// Anonymous types are unique
if (uni.BaseTypes.Count != 0 && uni.MemberTypes.Length != 0)
return "string";
foreach (XmlQualifiedName mt in uni.MemberTypes)
{
string qn = FindBuiltInType (mt);
if (utype != null && qn != utype) return "string";
else utype = qn;
}
return utype;
}
else
return "string";
}
XmlQualifiedName GetContentBaseType (XmlSchemaObject ob)
{
if (ob is XmlSchemaSimpleContentExtension)
return ((XmlSchemaSimpleContentExtension)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleContentRestriction)
return ((XmlSchemaSimpleContentRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeRestriction)
return ((XmlSchemaSimpleTypeRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeList)
return ((XmlSchemaSimpleTypeList)ob).ItemTypeName;
else
return null;
}
void WriteComplexContent (XmlTextWriter xtw, string ns, XmlSchemaComplexContent content)
{
XmlQualifiedName qname;
XmlSchemaComplexContentExtension ext = content.Content as XmlSchemaComplexContentExtension;
if (ext != null) qname = ext.BaseTypeName;
else {
XmlSchemaComplexContentRestriction rest = (XmlSchemaComplexContentRestriction)content.Content;
qname = rest.BaseTypeName;
if (qname == arrayType) {
ParseArrayType (rest, out qname);
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "Item";
elem.SchemaTypeName = qname;
xtw.WriteAttributeString ("arrayType", SoapEncodingNamespace, qname.Name + "[2]");
WriteContentItem (xtw, ns, elem, true);
return;
}
}
// Add base map members to this map
XmlSchemaComplexType ctype = FindComplexTyype (qname);
WriteComplexTypeAttributes (xtw, ctype);
if (ext != null) {
// Add the members of this map
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
if (ext.Particle != null)
WriteParticleComplexContent (xtw, ns, ext.Particle);
}
WriteComplexTypeElements (xtw, ns, ctype);
}
void ParseArrayType (XmlSchemaComplexContentRestriction rest, out XmlQualifiedName qtype)
{
XmlSchemaAttribute arrayTypeAt = FindArrayAttribute (rest.Attributes);
XmlAttribute[] uatts = arrayTypeAt.UnhandledAttributes;
if (uatts == null || uatts.Length == 0) throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
XmlAttribute xat = null;
foreach (XmlAttribute at in uatts)
if (at.LocalName == "arrayType" && at.NamespaceURI == WsdlNamespace)
{ xat = at; break; }
if (xat == null)
throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
string arrayType = xat.Value;
string type, ns;
int i = arrayType.LastIndexOf (":");
if (i == -1) ns = "";
else ns = arrayType.Substring (0,i);
int j = arrayType.IndexOf ("[", i+1);
if (j == -1) throw new InvalidOperationException ("Cannot parse WSDL array type: " + arrayType);
type = arrayType.Substring (i+1);
type = type.Substring (0, type.Length-2);
qtype = new XmlQualifiedName (type, ns);
}
XmlSchemaAttribute FindArrayAttribute (XmlSchemaObjectCollection atts)
{
foreach (object ob in atts)
{
XmlSchemaAttribute att = ob as XmlSchemaAttribute;
if (att != null && att.RefName == arrayTypeRefName) return att;
XmlSchemaAttributeGroupRef gref = ob as XmlSchemaAttributeGroupRef;
if (gref != null)
{
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
att = FindArrayAttribute (grp.Attributes);
if (att != null) return att;
}
}
return null;
}
void WriteSimpleTypeSample (XmlTextWriter xtw, XmlSchemaSimpleType stype)
{
xtw.WriteString (GetLiteral (FindBuiltInType (stype)));
}
XmlSchemaParticle GetRefGroupParticle (XmlSchemaGroupRef refGroup)
{
XmlSchemaGroup grp = (XmlSchemaGroup) schemas.Find (refGroup.RefName, typeof (XmlSchemaGroup));
return grp.Particle;
}
XmlSchemaElement FindRefElement (XmlSchemaElement elem)
{
if (elem.RefName.Namespace == XmlSchema.Namespace)
{
if (anyElement != null) return anyElement;
anyElement = new XmlSchemaElement ();
anyElement.Name = "any";
anyElement.SchemaTypeName = anyType;
return anyElement;
}
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
}
XmlSchemaAttribute FindRefAttribute (XmlQualifiedName refName)
{
if (refName.Namespace == XmlSchema.Namespace)
{
XmlSchemaAttribute at = new XmlSchemaAttribute ();
at.Name = refName.Name;
at.SchemaTypeName = new XmlQualifiedName ("string",XmlSchema.Namespace);
return at;
}
return (XmlSchemaAttribute) schemas.Find (refName, typeof(XmlSchemaAttribute));
}
void WriteRefTypeSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
if (elem.SchemaTypeName.Namespace == XmlSchema.Namespace || schemas.Find (elem.SchemaTypeName, typeof(XmlSchemaSimpleType)) != null)
WriteElementSample (xtw, ns, elem);
else
{
xtw.WriteStartElement (elem.Name, ns);
xtw.WriteAttributeString ("href", "#id" + (queue.Count+1));
xtw.WriteEndElement ();
queue.Add (new EncodedType (ns, elem));
}
}
void WriteQueuedTypeSamples (XmlTextWriter xtw)
{
for (int n=0; n<queue.Count; n++)
{
EncodedType ec = (EncodedType) queue[n];
XmlSchemaComplexType st = FindComplexTyype (ec.Element.SchemaTypeName);
WriteComplexTypeSample (xtw, st, ec.Element.SchemaTypeName, n+1);
}
}
XmlSchemaComplexType FindComplexTyype (XmlQualifiedName qname)
{
if (qname.Name.IndexOf ("[]") != -1)
{
XmlSchemaComplexType stype = new XmlSchemaComplexType ();
stype.ContentModel = new XmlSchemaComplexContent ();
XmlSchemaComplexContentRestriction res = new XmlSchemaComplexContentRestriction ();
stype.ContentModel.Content = res;
res.BaseTypeName = arrayType;
XmlSchemaAttribute att = new XmlSchemaAttribute ();
att.RefName = arrayTypeRefName;
res.Attributes.Add (att);
XmlAttribute xat = document.CreateAttribute ("arrayType", WsdlNamespace);
xat.Value = qname.Namespace + ":" + qname.Name;
att.UnhandledAttributes = new XmlAttribute[] {xat};
return stype;
}
return (XmlSchemaComplexType) schemas.Find (qname, typeof(XmlSchemaComplexType));
}
string GetQualifiedNameString (XmlTextWriter xtw, XmlQualifiedName qname)
{
string pref = xtw.LookupPrefix (qname.Namespace);
if (pref != null) return pref + ":" + qname.Name;
xtw.WriteAttributeString ("xmlns", "q1", null, qname.Namespace);
return "q1:" + qname.Name;
}
protected virtual string GetLiteral (string s)
{
return s;
}
void GetOperationFormat (OperationBinding obin, out SoapBindingStyle style, out SoapBindingUse use)
{
style = SoapBindingStyle.Document;
use = SoapBindingUse.Literal;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
style = sob.Style;
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
use = sbb.Use;
}
}
}
</script>
<head runat="server">
<%
Response.Write ("<link rel=\"alternate\" type=\"text/xml\" href=\"" + Request.FilePath + "?disco\"/>");
%>
<title><%=WebServiceName%> Web Service</title>
<style type="text/css">
BODY { font-family: Arial; margin-left: 20px; margin-top: 20px; font-size: x-small}
TABLE { font-size: x-small }
.title { color:dimgray; font-family: Arial; font-size:20pt; font-weight:900}
.operationTitle { color:dimgray; font-family: Arial; font-size:15pt; font-weight:900}
.method { font-size: x-small }
.bindingLabel { font-size: x-small; font-weight:bold; color:darkgray; line-height:8pt; display:block; margin-bottom:3px }
.label { font-size: small; font-weight:bold; color:darkgray }
.paramTable { font-size: x-small }
.paramTable TR { background-color: gainsboro }
.paramFormTable { font-size: x-small; padding: 10px; background-color: gainsboro }
.paramFormTable TR { background-color: gainsboro }
.paramInput { border: solid 1px gray }
.button {border: solid 1px gray }
.smallSeparator { height:3px; overflow:hidden }
.panel { background-color:whitesmoke; border: solid 1px silver; border-top: solid 1px silver }
.codePanel { background-color: white; font-size:x-small; padding:7px; border:solid 1px silver}
.code-xml { font-size:10pt; font-family:courier }
.code-cs { font-size:10pt; font-family:courier }
.code-vb { font-size:10pt; font-family:courier }
.tabLabelOn { font-weight:bold }
.tabLabelOff {color: darkgray }
.literal-placeholder {color: darkblue; font-weight:bold}
A:link { color: black; }
A:visited { color: black; }
A:active { color: black; }
A:hover { color: blue }
</style>
<script language="javascript" type="text/javascript">
var req;
function getXML (command, url, qs) {
if (url == "" || url.substring (0, 4) != "http")
return;
var post_data = null;
req = getReq ();
req.onreadystatechange = stateChange;
if (command == "GET") {
url = url + "?" + qs;
} else {
post_data = qs;
}
req.open (command, url, true);
if (command == "POST")
req.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
req.send (post_data);
}
function stateChange () {
if (req.readyState == 4) {
var node = document.getElementById("testresult_div");
var text = "";
if (req.status == 200) {
node.innerHTML = "<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
} else {
var ht = "<b style='color: red'>" + formatXml (req.status + " - " + req.statusText) + "</b>";
if (req.responseText != "")
ht = ht + "\n<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
node.innerHTML = ht;
}
}
}
function formatXml (text)
{
var re = / /g;
text = text.replace (re, "&nbsp;");
re = /\t/g;
text = text.replace (re, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
re = /\<\s*(\/?)\s*(.*?)\s*(\/?)\s*\>/g;
text = text.replace (re,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = /{(\w*):(.*?)}/g;
text = text.replace (re,"<span style='color:$1'>$2</span>");
re = /"(.*?)"/g;
text = text.replace (re,"\"<span style='color:purple'>$1</span>\"");
re = /\r\n|\r|\n/g;
text = text.replace (re, "<br/>");
return text;
}
function getReq () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); // Firefox, Safari, ...
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function clearForm ()
{
document.getElementById("testFormResult").style.display="none";
}
</script>
</head>
<body>
<div class="title" style="margin-left:20px">
<span class="label">Web Service</span><br>
<%=WebServiceName%>
</div>
<!--
**********************************************************
Left panel
-->
<table border="0" width="100%" cellpadding="15px" cellspacing="15px">
<tr valign="top"><td width="150px" class="panel">
<div style="width:150px"></div>
<a class="method" href='<%=PageName%>'>Overview</a><br>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("wsdl")%>'>Service Description</a>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("proxy")%>'>Client proxy</a>
<br><br>
<asp:repeater id="BindingsRepeater" runat=server>
<itemtemplate name="itemtemplate">
<span class="bindingLabel"><%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%></span>
<asp:repeater id="OperationsRepeater" runat=server datasource='<%# ((Binding)Container.DataItem).Operations %>'>
<itemtemplate>
<a class="method" href="<%=PageName%>?<%=GetTabContext("op",null)%>op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%></a>
<div class="smallSeparator"></div>
</itemtemplate>
</asp:repeater>
<br>
</itemtemplate>
</asp:repeater>
</td><td class="panel">
<% if (CurrentPage == "main") {%>
<!--
**********************************************************
Web service overview
-->
<p class="label">Web Service Overview</p>
<%=WebServiceDescription%>
<br/><br/>
<% if (ProfileViolations != null && ProfileViolations.Count > 0) { %>
<p class="label">Basic Profile Conformance</p>
This web service does not conform to WS-I Basic Profile v1.1
<%
Response.Write ("<ul>");
foreach (BasicProfileViolation vio in ProfileViolations) {
Response.Write ("<li><b>" + vio.NormativeStatement + "</b>: " + vio.Details);
Response.Write ("<ul>");
foreach (string ele in vio.Elements)
Response.Write ("<li>" + ele + "</li>");
Response.Write ("</ul>");
Response.Write ("</li>");
}
Response.Write ("</ul>");
}%>
<%} if (DefaultBinding == null) {%>
This service does not contain any public web method.
<%} else if (CurrentPage == "op") {%>
<!--
**********************************************************
Operation description
-->
<span class="operationTitle"><%=CurrentOperationName%></span>
<br><br>
<% WriteTabs (); %>
<br><br><br>
<% if (CurrentTab == "main") { %>
<span class="label">Input Parameters</span>
<div class="smallSeparator"></div>
<% if (InParams.Count == 0) { %>
No input parameters<br>
<% } else { %>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="InputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<% } %>
<br>
<% if (OutParams.Count > 0) { %>
<span class="label">Output Parameters</span>
<div class="smallSeparator"></div>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="OutputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<br>
<% } %>
<span class="label">Remarks</span>
<div class="smallSeparator"></div>
<%=OperationDocumentation%>
<br><br>
<span class="label">Technical information</span>
<div class="smallSeparator"></div>
Format: <%=CurrentOperationFormat%>
<br>Supported protocols: <%=CurrentOperationProtocols%>
<% } %>
<!--
**********************************************************
Operation description - Test form
-->
<% if (CurrentTab == "test") {
if (CurrentOperationSupportsTest) {%>
Enter values for the parameters and click the 'Invoke' button to test this method:<br><br>
<form action="<%=PageName%>" method="GET">
<input type="hidden" name="page" value="<%=CurrentPage%>">
<input type="hidden" name="tab" value="<%=CurrentTab%>">
<input type="hidden" name="op" value="<%=CurrentOperationName%>">
<input type="hidden" name="bnd" value="<%=CurrentOperationBinding%>">
<input type="hidden" name="ext" value="testform">
<table class="paramFormTable" cellspacing="0" cellpadding="3">
<asp:repeater id="InputFormParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Name")%>:&nbsp;</td>
<td width="150"><input class="paramInput" type="text" size="20" name="<%#DataBinder.Eval(Container.DataItem, "Name")%>"></td>
</tr>
</itemtemplate>
</asp:repeater>
<tr><td></td><td><input class="button" type="submit" value="Invoke">&nbsp;<input class="button" type="button" onclick="clearForm()" value="Clear"></td></tr>
</table>
</form>
<div id="testFormResult" style="display:<%= (HasFormResult?"block":"none") %>">
The web service returned the following result:<br/><br/>
<div class="codePanel" id="testresult_div">
</div>
<script language="javascript">
getXML ("<%= GetOrPost () %>", "<%= GetTestResultUrl () %>", "<%= GetQS () %>");
</script>
</div>
<% } else {%>
The test form is not available for this operation because it has parameters with a complex structure.
<% } %>
<% } %>
<!--
**********************************************************
Operation description - Message Layout
-->
<% if (CurrentTab == "msg") { %>
The following are sample SOAP requests and responses for each protocol supported by this method:
<br/><br/>
<% if (IsOperationSupported ("Soap")) { %>
<span class="label">Soap</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpGet")) { %>
<span class="label">HTTP Get</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpPost")) { %>
<span class="label">HTTP Post</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", false)%></div></div>
<br/>
<% } %>
<% } %>
<%} else if (CurrentPage == "proxy") {%>
<!--
**********************************************************
Client Proxy
-->
<form action="<%=PageName%>" name="langForm" method="GET">
Select the language for which you want to generate a proxy
<input type="hidden" name="page" value="<%=CurrentPage%>">&nbsp;
<SELECT name="lang" onchange="langForm.submit()">
<%=GetOptionSel("cs",CurrentLanguage)%>C#</option>
<%=GetOptionSel("vb",CurrentLanguage)%>Visual Basic</option>
</SELECT>
&nbsp;&nbsp;
</form>
<br>
<span class="label"><%=CurrentProxytName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?code=" + CurrentLanguage%>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-<%=CurrentLanguage%>"><%=GetProxyCode ()%></div>
</div>
<%} else if (CurrentPage == "wsdl") {%>
<!--
**********************************************************
Service description
-->
<% if (descriptions.Count > 1 || schemas.Count > 1) {%>
The description of this web service is composed by several documents. Click on the document you want to see:
<ul>
<%
for (int n=0; n<descriptions.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=wsdl&docind=" + n + "'>WSDL document " + descriptions[n].TargetNamespace + "</a></li>");
for (int n=0; n<schemas.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=schema&docind=" + n + "'>Xml Schema " + schemas[n].TargetNamespace + "</a></li>");
%>
</ul>
<%} else {%>
<%}%>
<br>
<span class="label"><%=CurrentDocumentName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?" + CurrentDocType + "=" + CurrentDocInd %>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-xml"><%=GenerateDocument ()%></div>
</div>
<%}%>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</td>
<td width="20px"></td>
</tr>
</table>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="configProtectedData" type="System.Configuration.ProtectedConfigurationSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mscorlib" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="runtime" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="assemblyBinding" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="satelliteassemblies" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.diagnostics" type="System.Diagnostics.DiagnosticsConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authorization" type="System.Web.Configuration.AuthorizationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="browserCaps" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="clientTarget" type="System.Web.Configuration.ClientTargetSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="compilation" type="System.Web.Configuration.CompilationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="customErrors" type="System.Web.Configuration.CustomErrorsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" />
<section name="globalization" type="System.Web.Configuration.GlobalizationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="healthMonitoring" type="System.Web.Configuration.HealthMonitoringSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="hostingEnvironment" type="System.Web.Configuration.HostingEnvironmentSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="httpCookies" type="System.Web.Configuration.HttpCookiesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpHandlers" type="System.Web.Configuration.HttpHandlersSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules" type="System.Web.Configuration.HttpModulesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpRuntime" type="System.Web.Configuration.HttpRuntimeSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="identity" type="System.Web.Configuration.IdentitySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="machineKey" type="System.Web.Configuration.MachineKeySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="membership" type="System.Web.Configuration.MembershipSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mobileControls" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="deviceFilters" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="pages" type="System.Web.Configuration.PagesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" allowLocation="false" />
<section name="profile" type="System.Web.Configuration.ProfileSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="roleManager" type="System.Web.Configuration.RoleManagerSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="securityPolicy" type="System.Web.Configuration.SecurityPolicySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="sessionPageState" type="System.Web.Configuration.SessionPageStateSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="sessionState" type="System.Web.Configuration.SessionStateSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="siteMap" type="System.Web.Configuration.SiteMapSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="trace" type="System.Web.Configuration.TraceSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="trust" type="System.Web.Configuration.TrustSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="urlMappings" type="System.Web.Configuration.UrlMappingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="webControls" type="System.Web.Configuration.WebControlsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webParts" type="System.Web.Configuration.WebPartsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webServices" type="System.Web.Services.Configuration.WebServicesSection, System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="xhtmlConformance" type="System.Web.Configuration.XhtmlConformanceSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<sectionGroup name="caching" type="System.Web.Configuration.SystemWebCachingSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="cache" type="System.Web.Configuration.CacheSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCache" type="System.Web.Configuration.OutputCacheSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCacheSettings" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="sqlCacheDependency" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
<section name="monoSettings" type="System.Web.Configuration.MonoSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</sectionGroup>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="authenticationModules" type="System.Net.Configuration.AuthenticationModulesSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="connectionManagement" type="System.Net.Configuration.ConnectionManagementSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="requestCaching" type="System.Net.Configuration.RequestCachingSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="settings" type="System.Net.Configuration.SettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webRequestModules" type="System.Net.Configuration.WebRequestModulesSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.drawing" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="standardEndpoints" type="System.ServiceModel.Configuration.StandardEndpointsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="routing" type="System.ServiceModel.Routing.Configuration.RoutingSection, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="protocolMapping" type="System.ServiceModel.Configuration.ProtocolMappingSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
<sectionGroup name="system.transactions" type="System.Transactions.Configuration.TransactionsSectionGroup, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null">
<section name="defaultSettings" type="System.Transactions.Configuration.DefaultSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>
<section name="machineSettings" type="System.Transactions.Configuration.MachineSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
</sectionGroup>
<section name="system.webServer" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="uri" type="System.Configuration.UriSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.runtime.caching" type="System.Runtime.Caching.Configuration.CachingSectionGroup, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="memoryCache" type="System.Runtime.Caching.Configuration.MemoryCacheSection, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
</configSections>
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="LocalSqliteServer" connectionString="Data Source=|DataDirectory|/aspnetdb.sqlite;version=3" providerName="Mono.Data.Sqlite"/>
</connectionStrings>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
<providers>
<add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" keyContainerName="MonoFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
<add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" useMachineProtection="true" keyEntropy="" />
</providers>
</configProtectedData>
<system.net>
<authenticationModules>
<add type="System.Net.BasicClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.DigestClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.NtlmClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</authenticationModules>
<webRequestModules>
<add prefix="http" type="System.Net.HttpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="https" type="System.Net.HttpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="file" type="System.Net.FileWebRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="ftp" type="System.Net.FtpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</webRequestModules>
</system.net>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http client" displayName="http client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="tcp client" displayName="tcp client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="ipc client" displayName="ipc client (delay loaded)" delayLoadAsClientChannel="true" />
</channels>
</application>
<channels>
<channel id="http" type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http client" type="System.Runtime.Remoting.Channels.Http.HttpClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http server" type="System.Runtime.Remoting.Channels.Http.HttpServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp" type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp client" type="System.Runtime.Remoting.Channels.Tcp.TcpClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp server" type="System.Runtime.Remoting.Channels.Tcp.TcpServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc" type="System.Runtime.Remoting.Channels.Ipc.IpcChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc client" type="System.Runtime.Remoting.Channels.Ipc.IpcClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc server" type="System.Runtime.Remoting.Channels.Ipc.IpcServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</channels>
<channelSinkProviders>
<clientProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</clientProviders>
<serverProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<provider id="wsdl" type="System.Runtime.Remoting.MetadataServices.SdlChannelSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</serverProviders>
</channelSinkProviders>
</system.runtime.remoting>
<appSettings>
<!--<add key="yourkey" value="your value" /> -->
<!--<remove key="a key defined higher in the hierarchy" /> -->
<!--<clear/> Removes all defined settings -->
</appSettings>
<system.diagnostics>
<trace autoflush="false" indentsize="4" />
</system.diagnostics>
<system.drawing>
</system.drawing>
<system.data>
<DbProviderFactories>
<add name="Mono Sqlite Data Provider" invariant="Mono.Data.SqliteClient"
description="Mono Framework Data Provider for SQLite (old version)"
type="Mono.Data.SqliteClient.SqliteFactory, Mono.Data.SqliteClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Mono Sqlite Provider" invariant="Mono.Data.Sqlite"
description="Mono Framework Data Provider for SQLite (new version)"
type="Mono.Data.Sqlite.SqliteFactory, Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Odbc Data Provider" invariant="System.Data.Odbc"
description=".Net Framework Data Provider for Odbc"
type="System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb"
description=".Net Framework Data Provider for OleDb"
type="System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
description=".Net Framework Data Provider for Oracle"
type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Sybase Data Provider" invariant="Mono.Data.SybaseClient"
description=".Net Framework Data Provider for Sybase"
type="Mono.Data.SybaseClient.SybaseClientFactory, Mono.Data.SybaseClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
</DbProviderFactories>
</system.data>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass monoMD2="Mono.Security.Cryptography.MD2Managed, Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
<cryptoClass monoMD4="Mono.Security.Cryptography.MD4Managed, Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
</cryptoClasses>
<nameEntry name="MD2" class="monoMD2" />
<nameEntry name="MD4" class="monoMD4" />
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.2.840.113549.2.2" name="MD2" />
<oidEntry OID="1.2.840.113549.2.2" name="Mono.Security.Cryptography.MD2Managed" />
<oidEntry OID="1.2.840.113549.2.4" name="MD4" />
<oidEntry OID="1.2.840.113549.2.4" name="Mono.Security.Cryptography.MD4Managed" />
</oidMap>
</cryptographySettings>
</mscorlib>
<strongNames>
<pubTokenMapping>
<!-- ECMA key -->
<map Token="b77a5c561934e089" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (final) key -->
<map Token="b03f5f7f11d50a3a" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (Web Service Enhancement) key -->
<map Token="31bf3856ad364e35" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- IBM (DB2 Data Provider) key -->
<map Token="7c307b91aa13d208" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Silverlight 2.0 key -->
<map Token="7cec85d7bea7798e" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- XNA Framework key -->
<map Token="6d5c3888ef60e27d" PublicKey="0024000004800000940000000602000000240000525341310004000001000100f9a2641bac9847900d92a33d652ccc4e8b529360f908e7af53e57008b2a9a1938c32a160d47f795a23590557608d2c8d0c0e8846a052d070f9298281b8185343dbe5b479bd52de256f73c2a943e1a8a42065b5c918622dc14b1c0151dbd94d9a4543e7cd03e536b1b1d2d6d99af535d227ab9bdac76af9312a21d457bdf817e6" />
</pubTokenMapping>
</strongNames>
<system.web>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpSoap12"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
<conformanceWarnings>
<add name="BasicProfile1_1"/>
</conformanceWarnings>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
</webServices>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
<!-- <add name="AspNetSqlMembershipProvider" type="Mainsoft.Web.Security.GenericMembershipProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</membership>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="LocalSqlServer" />
<!-- <add name="AspNetSqlRoleProvider" type="Mainsoft.Web.Security.GenericRoleProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</roleManager>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
</system.web>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
<bindingElementExtensions>
<add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingElementExtensions>
<bindingExtensions>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
<endpointExtensions>
<add name="dynamicEndpoint" type="System.ServiceModel.Discovery.Configuration.DynamicEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="discoveryEndpoint" type="System.ServiceModel.Discovery.Configuration.DiscoveryEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="udpDiscoveryEndpoint" type="System.ServiceModel.Discovery.Configuration.UdpDiscoveryEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="announcementEndpoint" type="System.ServiceModel.Discovery.Configuration.AnnouncementEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="udpAnnouncementEndpoint" type="System.ServiceModel.Discovery.Configuration.UdpAnnouncementEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttpEndpoint" type="System.ServiceModel.Configuration.WebHttpEndpointCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webScriptEndpoint" type="System.ServiceModel.Configuration.WebScriptEndpointCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</endpointExtensions>
</extensions>
</system.serviceModel>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<settingsMap>
<map sectionType="System.Web.Configuration.MembershipSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.MembershipSectionMapper, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqliteMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
<map sectionType="System.Web.Configuration.RoleManagerSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.RoleManagerSectionMapper, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlRoleProvider"
type="System.Web.Security.SqliteRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
</settingsMap>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<system.web>
<monoSettings>
<compilersCompatibility>
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/nowarn:0169"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilersCompatibility>
</monoSettings>
<authorization>
<allow users="*" />
</authorization>
<httpHandlers>
<add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
<add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
<add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
<add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
<add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False" />
<add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False" />
<add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<!--
<add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
-->
<add verb="*" path="*.svc" type="System.ServiceModel.Channels.SvcHttpHandlerFactory, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add path="*.rules" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<!--
<add path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
<add path="*.xamlx" verb="*" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
-->
<add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True" />
<add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True" />
</httpHandlers>
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
<!--
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" />
-->
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
<!--
<add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule" />
-->
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<!--
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" />
-->
<add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" />
<add name="Profile" type="System.Web.Profile.ProfileModule" />
<!--
<add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
-->
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
<authentication mode="Forms">
<forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<!--<user name="gonzalo" password="gonz"/>-->
</credentials>
</forms>
</authentication>
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"/>
<!--
culture="en-US"
uiculture="en-US" />
-->
<sessionState mode="InProc" />
<pages>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<!-- <add namespace="System.Web.UI.WebControls.WebParts" /> -->
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls.WebParts" assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls.Expressions" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</controls>
</pages>
<webControls clientScriptsLocation="/web_scripts" />
<compilation debug="false" defaultLanguage="c#" explicit="true" strict="false" >
<assemblies>
<add assembly="mscorlib" />
<add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<!-- <add assembly="System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> -->
<add assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!-- <add assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<add assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- <add assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> -->
<!-- <add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> -->
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!-- <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> -->
<add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="*" /> <!-- Add assemblies in bin directory -->
</assemblies>
<expressionBuilders>
<add expressionPrefix="Resources"
type="System.Web.Compilation.ResourceExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="ConnectionStrings"
type="System.Web.Compilation.ConnectionStringsExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="AppSettings"
type="System.Web.Compilation.AppSettingsExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="RouteUrl" type="System.Web.Compilation.RouteUrlExpressionBuilder"/>
<!--
<add expressionPrefix="RouteValue" type="System.Web.Compilation.RouteValueExpressionBuilder"/>
-->
</expressionBuilders>
<buildProviders>
<add extension=".aspx" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider" />
<add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider" />
<add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider" />
<add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".resx" type="System.Web.Compilation.ResXBuildProvider" />
<add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider" />
<add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider" />
<add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider" />
<add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider" />
<add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<!--
<add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
<add extension=".xoml" type="System.ServiceModel.Activation.WorkflowServiceBuildProvider, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add extension=".svc" type="System.ServiceModel.Activation.ServiceBuildProvider, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add extension=".xamlx" type="System.Xaml.Hosting.XamlBuildProvider, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
-->
</buildProviders>
</compilation>
<httpRuntime executionTimeout="110"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="5000" />
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="downlevel" userAgent="Unknown" />
</clientTarget>
<siteMap>
<providers>
<add name="AspNetXmlSiteMapProvider"
description="Default site map provider that reads in .sitemap xml files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
<!--
This file defines some of the browsers that Microsoft's implementation provides in
<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers\*.browser
It is not derived from any file distributed with Microsoft's implementation. Since
we can't distribute MS's browser files, we use browscap.ini to determine
browser capabilities. Then, if and only if the application contains App_Browser/*.browser
files and we are using .NET 2.0 or higher, we supplement the capabilities with the
information in those files and the files in this directory. The primary goal of this file
is provide browser definitions that might be referenced in App_Browser/*.browser files.
-->
<browsers>
<defaultBrowser id="Default">
</defaultBrowser>
<browser id="Default">
<identification>
<userAgent match="." />
</identification>
</browser>
<browser id="IE6to9" parentID="Default">
<identification>
<capability name="majorver" match="^[6-9]" />
<capability name="browser" match="^(IE|AOL)$" />
</identification>
</browser>
<browser id="Opera8to9" parentID="Default">
<identification>
<capability name="majorver" match="^[8-9]" />
<capability name="browser" match="^Opera$" />
</identification>
</browser>
<browser id="Safari" parentID="Default">
<identification>
<capability name="browser" match="^Safari$" />
</identification>
</browser>
<browser id="Mozilla" parentID="Default">
<identification>
<capability name="browser" match="^Mozilla" />
</identification>
</browser>
</browsers>
\ No newline at end of file
<%--
//
// DefaultWsdlHelpGenerator.aspx:
//
// Author:
// Lluis Sanchez Gual (lluis@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
//
--%>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml.Serialization" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Web.Services.Description" %>
<%@ Import Namespace="System.Web.Services.Configuration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Resources" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.CodeDom" %>
<%@ Import Namespace="System.CodeDom.Compiler" %>
<%@ Import Namespace="Microsoft.CSharp" %>
<%@ Import Namespace="Microsoft.VisualBasic" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<%@ Assembly name="System.Web.Services" %>
<%@ Page debug="true" %>
<html>
<script language="C#" runat="server">
ServiceDescriptionCollection descriptions;
XmlSchemas schemas;
string WebServiceName;
string WebServiceDescription;
string PageName;
string DefaultBinding;
ArrayList ServiceProtocols;
string CurrentOperationName;
string CurrentOperationBinding;
string OperationDocumentation;
string CurrentOperationFormat;
bool CurrentOperationSupportsTest;
ArrayList InParams;
ArrayList OutParams;
string CurrentOperationProtocols;
int CodeTextColumns = 95;
BasicProfileViolationCollection ProfileViolations;
void Page_Load(object sender, EventArgs e)
{
descriptions = (ServiceDescriptionCollection) Context.Items["wsdls"];
schemas = (XmlSchemas) Context.Items["schemas"];
ServiceDescription desc = descriptions [0];
if (schemas.Count == 0) schemas = desc.Types.Schemas;
Service service = desc.Services[0];
WebServiceName = service.Name;
if (desc.Bindings.Count == 0)
return;
DefaultBinding = desc.Bindings[0].Name;
WebServiceDescription = service.Documentation;
if (WebServiceDescription == "" || WebServiceDescription == null)
WebServiceDescription = "Description has not been provided";
ServiceProtocols = FindServiceProtocols (null);
CurrentOperationName = Request.QueryString["op"];
CurrentOperationBinding = Request.QueryString["bnd"];
if (CurrentOperationName != null) BuildOperationInfo ();
PageName = HttpUtility.UrlEncode (Path.GetFileName(Request.Path), Encoding.UTF8);
ArrayList list = new ArrayList ();
foreach (ServiceDescription sd in descriptions) {
foreach (Binding bin in sd.Bindings)
if (bin.Extensions.Find (typeof(SoapBinding)) != null) list.Add (bin);
}
BindingsRepeater.DataSource = list;
Page.DataBind();
ProfileViolations = new BasicProfileViolationCollection ();
foreach (WsiProfilesElement claims in ((WebServicesSection) WebConfigurationManager.GetSection("system.web/webServices")).ConformanceWarnings)
if (claims.Name != WsiProfiles.None)
WebServicesInteroperability.CheckConformance (claims.Name, descriptions, ProfileViolations);
}
void BuildOperationInfo ()
{
InParams = new ArrayList ();
OutParams = new ArrayList ();
Port port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
OperationDocumentation = oper.Documentation;
if (OperationDocumentation == null || OperationDocumentation == "")
OperationDocumentation = "No additional remarks";
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput)
BuildParameters (InParams, opm);
else if (opm is OperationOutput)
BuildParameters (OutParams, opm);
}
// Protocols supported by the operation
CurrentOperationProtocols = "";
WebServiceProtocols testProtocols = 0;
ArrayList prots = FindServiceProtocols (CurrentOperationName);
for (int n=0; n<prots.Count; n++) {
string prot = (string) prots [n];
if (n != 0) CurrentOperationProtocols += ", ";
CurrentOperationProtocols += prot;
if (prot == "HttpGet")
testProtocols |= WebServiceProtocols.HttpGet;
else if (prot == "HttpPost") {
testProtocols |= WebServiceProtocols.HttpPost;
if (Context.Request.IsLocal)
testProtocols |= WebServiceProtocols.HttpPostLocalhost;
}
}
CurrentOperationSupportsTest = (WebServicesSection.Current.EnabledProtocols & testProtocols) != 0;
// Operation format
OperationBinding obin = FindOperation (binding, CurrentOperationName);
if (obin != null)
CurrentOperationFormat = GetOperationFormat (obin);
InputParamsRepeater.DataSource = InParams;
InputFormParamsRepeater.DataSource = InParams;
OutputParamsRepeater.DataSource = OutParams;
}
void BuildParameters (ArrayList list, OperationMessage opm)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
XmlSchemaComplexType ctype;
if (part.Element == XmlQualifiedName.Empty)
{
ctype = (XmlSchemaComplexType) schemas.Find (part.Type, typeof(XmlSchemaComplexType));
}
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
ctype = (XmlSchemaComplexType) elem.SchemaType;
}
XmlSchemaSequence seq = ctype.Particle as XmlSchemaSequence;
if (seq == null) return;
foreach (XmlSchemaObject ob in seq.Items)
{
Parameter p = new Parameter();
p.Description = "No additional remarks";
if (ob is XmlSchemaElement)
{
XmlSchemaElement selem = GetRefElement ((XmlSchemaElement)ob);
p.Name = selem.Name;
p.Type = selem.SchemaTypeName.Name;
}
else
{
p.Name = "Unknown";
p.Type = "Unknown";
}
list.Add (p);
}
}
else
{
foreach (MessagePart part in msg.Parts)
{
Parameter p = new Parameter ();
p.Description = "No additional remarks";
p.Name = part.Name;
if (part.Element == XmlQualifiedName.Empty)
p.Type = part.Type.Name;
else
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (part.Element, typeof(XmlSchemaElement));
p.Type = elem.SchemaTypeName.Name;
}
list.Add (p);
}
}
}
string GetOperationFormat (OperationBinding obin)
{
string format = "";
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
format = sob.Style.ToString ();
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
format += " / " + sbb.Use;
}
return format;
}
XmlSchemaElement GetRefElement (XmlSchemaElement elem)
{
if (!elem.RefName.IsEmpty)
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
else
return elem;
}
ArrayList FindServiceProtocols(string operName)
{
ArrayList table = new ArrayList ();
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
string prot = null;
Binding bin = descriptions.GetBinding (port.Binding);
if (bin.Extensions.Find (typeof(SoapBinding)) != null)
prot = "Soap";
else
{
HttpBinding hb = (HttpBinding) bin.Extensions.Find (typeof(HttpBinding));
if (hb != null && hb.Verb == "POST") prot = "HttpPost";
else if (hb != null && hb.Verb == "GET") prot = "HttpGet";
}
if (prot != null && operName != null)
{
if (FindOperation (bin, operName) == null)
prot = null;
}
if (prot != null && !table.Contains (prot))
table.Add (prot);
}
return table;
}
Port FindPort (string portName, string protocol)
{
Service service = descriptions[0].Services[0];
foreach (Port port in service.Ports)
{
if (portName == null)
{
Binding binding = descriptions.GetBinding (port.Binding);
if (GetProtocol (binding) == protocol) return port;
}
else if (port.Name == portName)
return port;
}
return null;
}
string GetProtocol (Binding binding)
{
if (binding.Extensions.Find (typeof(SoapBinding)) != null) return "Soap";
HttpBinding hb = (HttpBinding) binding.Extensions.Find (typeof(HttpBinding));
if (hb == null) return "";
if (hb.Verb == "POST") return "HttpPost";
if (hb.Verb == "GET") return "HttpGet";
return "";
}
Operation FindOperation (PortType portType, string name)
{
foreach (Operation oper in portType.Operations) {
if (oper.Messages.Input.Name != null) {
if (oper.Messages.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
OperationBinding FindOperation (Binding binding, string name)
{
foreach (OperationBinding oper in binding.Operations) {
if (oper.Input.Name != null) {
if (oper.Input.Name == name) return oper;
}
else
if (oper.Name == name) return oper;
}
return null;
}
string FormatBindingName (string name)
{
if (name == DefaultBinding) return "Methods";
else return "Methods for binding<br>" + name;
}
string GetOpName (object op)
{
OperationBinding ob = op as OperationBinding;
if (ob == null) return "";
if (ob.Input.Name != null) return ob.Input.Name;
else return ob.Name;
}
bool HasFormResult
{
get { return Request.QueryString ["ext"] == "testform"; }
}
class NoCheckCertificatePolicy : ICertificatePolicy {
public bool CheckValidationResult (ServicePoint a, X509Certificate b, WebRequest c, int d)
{
return true;
}
}
string GetOrPost ()
{
return (CurrentOperationProtocols.IndexOf ("HttpGet") >= 0) ? "GET" : "POST";
}
string GetQS ()
{
bool fill = false;
string qs = "";
NameValueCollection query_string = Request.QueryString;
for (int n = 0; n < query_string.Count; n++) {
if (fill) {
if (qs != "") qs += "&";
qs += query_string.GetKey(n) + "=" + Server.UrlEncode (query_string [n]);
}
if (query_string.GetKey(n) == "ext") fill = true;
}
return qs;
}
string GetTestResultUrl ()
{
if (!HasFormResult) return "";
string location = null;
ServiceDescription desc = descriptions [0];
Service service = desc.Services[0];
foreach (Port port in service.Ports)
if (port.Name == CurrentOperationBinding)
{
SoapAddressBinding sbi = (SoapAddressBinding) port.Extensions.Find (typeof(SoapAddressBinding));
if (sbi != null)
location = sbi.Location;
}
if (location == null)
return "Could not locate web service";
return location + "/" + CurrentOperationName;
}
string GenerateOperationMessages (string protocol, bool generateInput)
{
if (!IsOperationSupported (protocol)) return "";
Port port;
if (protocol != "Soap") port = FindPort (null, protocol);
else port = FindPort (CurrentOperationBinding, null);
Binding binding = descriptions.GetBinding (port.Binding);
OperationBinding obin = FindOperation (binding, CurrentOperationName);
PortType portType = descriptions.GetPortType (binding.Type);
Operation oper = FindOperation (portType, CurrentOperationName);
HtmlSampleGenerator sg = new HtmlSampleGenerator (descriptions, schemas);
string txt = sg.GenerateMessage (port, obin, oper, protocol, generateInput);
if (protocol == "Soap") txt = WrapText (txt,CodeTextColumns);
txt = ColorizeXml (txt);
txt = txt.Replace ("@placeholder!","<span class='literal-placeholder'>");
txt = txt.Replace ("!placeholder@","</span>");
return txt;
}
bool IsOperationSupported (string protocol)
{
if (CurrentPage != "op" || CurrentTab != "msg") return false;
if (protocol == "Soap") return true;
Port port = FindPort (null, protocol);
if (port == null) return false;
Binding binding = descriptions.GetBinding (port.Binding);
if (binding == null) return false;
return FindOperation (binding, CurrentOperationName) != null;
}
//
// Proxy code generation
//
string GetProxyCode ()
{
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add (codeNamespace);
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
foreach (ServiceDescription sd in descriptions)
importer.AddServiceDescription(sd, null, null);
foreach (XmlSchema sc in schemas)
importer.Schemas.Add (sc);
importer.Import(codeNamespace, codeUnit);
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
CodeDomProvider provider = GetProvider (langId);
ICodeGenerator generator = provider.CreateGenerator();
CodeGeneratorOptions options = new CodeGeneratorOptions();
StringWriter sw = new StringWriter ();
generator.GenerateCodeFromCompileUnit(codeUnit, sw, options);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), langId);
}
public string CurrentLanguage
{
get {
string langId = Request.QueryString ["lang"];
if (langId == null || langId == "") langId = "cs";
return langId;
}
}
public string CurrentProxytName
{
get {
string lan = CurrentLanguage == "cs" ? "C#" : "Visual Basic";
return lan + " Client Proxy";
}
}
private CodeDomProvider GetProvider(string langId)
{
switch (langId.ToUpper())
{
case "CS": return new CSharpCodeProvider();
case "VB": return new VBCodeProvider();
default: return null;
}
}
//
// Document generation
//
class UTF8StringWriter : StringWriter {
public override Encoding Encoding {
get { return Encoding.UTF8; }
}
}
string GenerateDocument ()
{
UTF8StringWriter sw = new UTF8StringWriter ();
if (CurrentDocType == "wsdl")
descriptions [CurrentDocInd].Write (sw);
else if (CurrentDocType == "schema")
schemas [CurrentDocInd].Write (sw);
return Colorize (WrapText (sw.ToString (), CodeTextColumns), "xml");
}
public string CurrentDocType
{
get { return Request.QueryString ["doctype"] != null ? Request.QueryString ["doctype"] : "wsdl"; }
}
public int CurrentDocInd
{
get { return Request.QueryString ["docind"] != null ? int.Parse (Request.QueryString ["docind"]) : 0; }
}
public string CurrentDocumentName
{
get {
if (CurrentDocType == "wsdl")
return "WSDL document for namespace \"" + descriptions [CurrentDocInd].TargetNamespace + "\"";
else
return "Xml Schema for namespace \"" + schemas [CurrentDocInd].TargetNamespace + "\"";
}
}
//
// Pages and tabs
//
bool firstTab = true;
ArrayList disabledTabs = new ArrayList ();
string CurrentTab
{
get { return Request.QueryString["tab"] != null ? Request.QueryString["tab"] : "main" ; }
}
string CurrentPage
{
get { return Request.QueryString["page"] != null ? Request.QueryString["page"] : "main" ; }
}
void WriteTabs ()
{
if (CurrentOperationName != null)
{
WriteTab ("main","Overview");
WriteTab ("test","Test Form");
WriteTab ("msg","Message Layout");
}
}
void WriteTab (string id, string label)
{
if (!firstTab) Response.Write("&nbsp;|&nbsp;");
firstTab = false;
string cname = CurrentTab == id ? "tabLabelOn" : "tabLabelOff";
Response.Write ("<a href='" + PageName + "?" + GetPageContext(null) + GetDataContext() + "tab=" + id + "' style='text-decoration:none'>");
Response.Write ("<span class='" + cname + "'>" + label + "</span>");
Response.Write ("</a>");
}
string GetTabContext (string pag, string tab)
{
if (tab == null) tab = CurrentTab;
if (pag == null) pag = CurrentPage;
if (pag != CurrentPage) tab = "main";
return "page=" + pag + "&tab=" + tab + "&";
}
string GetPageContext (string pag)
{
if (pag == null) pag = CurrentPage;
return "page=" + pag + "&";
}
class Tab
{
public string Id;
public string Label;
}
//
// Syntax coloring
//
static string keywords_cs =
"(\\babstract\\b|\\bevent\\b|\\bnew\\b|\\bstruct\\b|\\bas\\b|\\bexplicit\\b|\\bnull\\b|\\bswitch\\b|\\bbase\\b|\\bextern\\b|" +
"\\bobject\\b|\\bthis\\b|\\bbool\\b|\\bfalse\\b|\\boperator\\b|\\bthrow\\b|\\bbreak\\b|\\bfinally\\b|\\bout\\b|\\btrue\\b|" +
"\\bbyte\\b|\\bfixed\\b|\\boverride\\b|\\btry\\b|\\bcase\\b|\\bfloat\\b|\\bparams\\b|\\btypeof\\b|\\bcatch\\b|\\bfor\\b|" +
"\\bprivate\\b|\\buint\\b|\\bchar\\b|\\bforeach\\b|\\bprotected\\b|\\bulong\\b|\\bchecked\\b|\\bgoto\\b|\\bpublic\\b|" +
"\\bunchecked\\b|\\bclass\\b|\\bif\\b|\\breadonly\\b|\\bunsafe\\b|\\bconst\\b|\\bimplicit\\b|\\bref\\b|\\bushort\\b|" +
"\\bcontinue\\b|\\bin\\b|\\breturn\\b|\\busing\\b|\\bdecimal\\b|\\bint\\b|\\bsbyte\\b|\\bvirtual\\b|\\bdefault\\b|" +
"\\binterface\\b|\\bsealed\\b|\\bvolatile\\b|\\bdelegate\\b|\\binternal\\b|\\bshort\\b|\\bvoid\\b|\\bdo\\b|\\bis\\b|" +
"\\bsizeof\\b|\\bwhile\\b|\\bdouble\\b|\\block\\b|\\bstackalloc\\b|\\belse\\b|\\blong\\b|\\bstatic\\b|\\benum\\b|" +
"\\bnamespace\\b|\\bstring\\b)";
static string keywords_vb =
"(\\bAddHandler\\b|\\bAddressOf\\b|\\bAlias\\b|\\bAnd\\b|\\bAndAlso\\b|\\bAnsi\\b|\\bAs\\b|\\bAssembly\\b|" +
"\\bAuto\\b|\\bBoolean\\b|\\bByRef\\b|\\bByte\\b|\\bByVal\\b|\\bCall\\b|\\bCase\\b|\\bCatch\\b|" +
"\\bCBool\\b|\\bCByte\\b|\\bCChar\\b|\\bCDate\\b|\\bCDec\\b|\\bCDbl\\b|\\bChar\\b|\\bCInt\\b|" +
"\\bClass\\b|\\bCLng\\b|\\bCObj\\b|\\bConst\\b|\\bCShort\\b|\\bCSng\\b|\\bCStr\\b|\\bCType\\b|" +
"\\bDate\\b|\\bDecimal\\b|\\bDeclare\\b|\\bDefault\\b|\\bDelegate\\b|\\bDim\\b|\\bDirectCast\\b|\\bDo\\b|" +
"\\bDouble\\b|\\bEach\\b|\\bElse\\b|\\bElseIf\\b|\\bEnd\\b|\\bEnum\\b|\\bErase\\b|\\bError\\b|" +
"\\bEvent\\b|\\bExit\\b|\\bFalse\\b|\\bFinally\\b|\\bFor\\b|\\bFriend\\b|\\bFunction\\b|\\bGet\\b|" +
"\\bGetType\\b|\\bGoSub\\b|\\bGoTo\\b|\\bHandles\\b|\\bIf\\b|\\bImplements\\b|\\bImports\\b|\\bIn\\b|" +
"\\bInherits\\b|\\bInteger\\b|\\bInterface\\b|\\bIs\\b|\\bLet\\b|\\bLib\\b|\\bLike\\b|\\bLong\\b|" +
"\\bLoop\\b|\\bMe\\b|\\bMod\\b|\\bModule\\b|\\bMustInherit\\b|\\bMustOverride\\b|\\bMyBase\\b|\\bMyClass\\b|" +
"\\bNamespace\\b|\\bNew\\b|\\bNext\\b|\\bNot\\b|\\bNothing\\b|\\bNotInheritable\\b|\\bNotOverridable\\b|\\bObject\\b|" +
"\\bOn\\b|\\bOption\\b|\\bOptional\\b|\\bOr\\b|\\bOrElse\\b|\\bOverloads\\b|\\bOverridable\\b|\\bOverrides\\b|" +
"\\bParamArray\\b|\\bPreserve\\b|\\bPrivate\\b|\\bProperty\\b|\\bProtected\\b|\\bPublic\\b|\\bRaiseEvent\\b|\\bReadOnly\\b|" +
"\\bReDim\\b|\\bREM\\b|\\bRemoveHandler\\b|\\bResume\\b|\\bReturn\\b|\\bSelect\\b|\\bSet\\b|\\bShadows\\b|" +
"\\bShared\\b|\\bShort\\b|\\bSingle\\b|\\bStatic\\b|\\bStep\\b|\\bStop\\b|\\bString\\b|\\bStructure\\b|" +
"\\bSub\\b|\\bSyncLock\\b|\\bThen\\b|\\bThrow\\b|\\bTo\\b|\\bTrue\\b|\\bTry\\b|\\bTypeOf\\b|" +
"\\bUnicode\\b|\\bUntil\\b|\\bVariant\\b|\\bWhen\\b|\\bWhile\\b|\\bWith\\b|\\bWithEvents\\b|\\bWriteOnly\\b|\\bXor\\b)";
string Colorize (string text, string lang)
{
if (lang == "xml") return ColorizeXml (text);
else if (lang == "cs") return ColorizeCs (text);
else if (lang == "vb") return ColorizeVb (text);
else return text;
}
string ColorizeXml (string text)
{
text = text.Replace (" ", "&nbsp;");
Regex re = new Regex ("\r\n|\r|\n");
text = re.Replace (text, "_br_");
re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
text = re.Replace (text,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = new Regex ("\\{(\\w*):([\\s\\S]*?)\\}");
text = re.Replace (text,"<span style='color:$1'>$2</span>");
re = new Regex ("\"(.*?)\"");
text = re.Replace (text,"\"<span style='color:purple'>$1</span>\"");
text = text.Replace ("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("_br_", "<br>");
return text;
}
string ColorizeCs (string text)
{
text = text.Replace (" ", "&nbsp;");
text = text.Replace ("<", "&lt;");
text = text.Replace (">", "&gt;");
Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("//(((.(?!\"</span>))|\"(((?!\").)*)\"</span>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_cs);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
string ColorizeVb (string text)
{
text = text.Replace (" ", "&nbsp;");
/* Regex re = new Regex ("\"((((?!\").)|\\\")*?)\"");
text = re.Replace (text,"<span style='color:purple'>\"$1\"</span>");
re = new Regex ("'(((.(?!\"\\<\\/span\\>))|\"(((?!\").)*)\"\\<\\/span\\>)*)(\r|\n|\r\n)");
text = re.Replace (text,"<span style='color:green'>//$1</span><br/>");
re = new Regex (keywords_vb);
text = re.Replace (text,"<span style='color:blue'>$1</span>");
*/
text = text.Replace ("\t","&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
text = text.Replace ("\n","<br/>");
return text;
}
//
// Helper methods and classes
//
string GetDataContext ()
{
return "op=" + CurrentOperationName + "&bnd=" + CurrentOperationBinding + "&";
}
string GetOptionSel (string v1, string v2)
{
string op = "<option ";
if (v1 == v2) op += "selected ";
return op + "value='" + v1 + "'>";
}
string WrapText (string text, int maxChars)
{
text = text.Replace(" />","/>");
string linspace = null;
int lincount = 0;
int breakpos = 0;
int linstart = 0;
bool inquotes = false;
char lastc = ' ';
string sublineIndent = "";
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
for (int n=0; n<text.Length; n++)
{
char c = text [n];
if (c=='\r' || c=='\n' || n==text.Length-1)
{
sb.Append (linspace + sublineIndent + text.Substring (linstart, n-linstart+1));
linspace = null;
lincount = 0;
linstart = n+1;
breakpos = linstart;
sublineIndent = "";
lastc = c;
continue;
}
if (lastc==',' || lastc=='(')
{
if (!inquotes) breakpos = n;
}
if (lincount > maxChars && breakpos >= linstart)
{
if (linspace != null)
sb.Append (linspace + sublineIndent);
sb.Append (text.Substring (linstart, breakpos-linstart));
sb.Append ("\n");
sublineIndent = " ";
lincount = linspace.Length + sublineIndent.Length + (n-breakpos);
linstart = breakpos;
}
if (c==' ' || c=='\t')
{
if (!inquotes)
breakpos = n;
}
else if (c=='"')
{
inquotes = !inquotes;
}
else
if (linspace == null) {
linspace = text.Substring (linstart, n-linstart);
linstart = n;
}
lincount++;
lastc = c;
}
return sb.ToString ();
}
class Parameter
{
string name;
string type;
string description;
public string Name { get { return name; } set { name = value; } }
public string Type { get { return type; } set { type = value; } }
public string Description { get { return description; } set { description = value; } }
}
public class HtmlSampleGenerator: SampleGenerator
{
public HtmlSampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
: base (services, schemas)
{
}
protected override string GetLiteral (string s)
{
return "@placeholder!" + s + "!placeholder@";
}
}
public class SampleGenerator
{
protected ServiceDescriptionCollection descriptions;
protected XmlSchemas schemas;
XmlSchemaElement anyElement;
ArrayList queue;
SoapBindingUse currentUse;
XmlDocument document = new XmlDocument ();
static readonly XmlQualifiedName anyType = new XmlQualifiedName ("anyType",XmlSchema.Namespace);
static readonly XmlQualifiedName arrayType = new XmlQualifiedName ("Array","http://schemas.xmlsoap.org/soap/encoding/");
static readonly XmlQualifiedName arrayTypeRefName = new XmlQualifiedName ("arrayType","http://schemas.xmlsoap.org/soap/encoding/");
const string SoapEnvelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
const string WsdlNamespace = "http://schemas.xmlsoap.org/wsdl/";
const string SoapEncodingNamespace = "http://schemas.xmlsoap.org/soap/encoding/";
class EncodedType
{
public EncodedType (string ns, XmlSchemaElement elem) { Namespace = ns; Element = elem; }
public string Namespace;
public XmlSchemaElement Element;
}
public SampleGenerator (ServiceDescriptionCollection services, XmlSchemas schemas)
{
descriptions = services;
this.schemas = schemas;
queue = new ArrayList ();
}
public string GenerateMessage (Port port, OperationBinding obin, Operation oper, string protocol, bool generateInput)
{
OperationMessage msg = null;
foreach (OperationMessage opm in oper.Messages)
{
if (opm is OperationInput && generateInput) msg = opm;
else if (opm is OperationOutput && !generateInput) msg = opm;
}
if (msg == null) return null;
switch (protocol) {
case "Soap": return GenerateHttpSoapMessage (port, obin, oper, msg);
case "HttpGet": return GenerateHttpGetMessage (port, obin, oper, msg);
case "HttpPost": return GenerateHttpPostMessage (port, obin, oper, msg);
}
return "Unknown protocol";
}
public string GenerateHttpSoapMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
SoapAddressBinding sab = port.Extensions.Find (typeof(SoapAddressBinding)) as SoapAddressBinding;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
req += "POST " + new Uri (sab.Location).AbsolutePath + "\n";
req += "SOAPAction: " + sob.SoapAction + "\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
}
req += GenerateSoapMessage (obin, oper, msg);
return req;
}
public string GenerateHttpGetMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location + "?" + BuildQueryString (msg);
req += "GET " + location + "\n";
req += "Host: " + GetLiteral ("string");
}
else
{
req += "HTTP/1.0 200 OK\n";
req += "Content-Type: text/xml; charset=utf-8\n";
req += "Content-Length: " + GetLiteral ("string") + "\n\n";
MimeXmlBinding mxb = (MimeXmlBinding) obin.Output.Extensions.Find (typeof(MimeXmlBinding)) as MimeXmlBinding;
if (mxb == null) return req;
Message message = descriptions.GetMessage (msg.Message);
XmlQualifiedName ename = null;
foreach (MessagePart part in message.Parts)
if (part.Name == mxb.Part) ename = part.Element;
if (ename == null) return req + GetLiteral("string");
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
currentUse = SoapBindingUse.Literal;
WriteRootElementSample (xtw, ename);
xtw.Close ();
req += sw.ToString ();
}
return req;
}
public string GenerateHttpPostMessage (Port port, OperationBinding obin, Operation oper, OperationMessage msg)
{
string req = "";
if (msg is OperationInput)
{
HttpAddressBinding sab = port.Extensions.Find (typeof(HttpAddressBinding)) as HttpAddressBinding;
HttpOperationBinding sob = obin.Extensions.Find (typeof(HttpOperationBinding)) as HttpOperationBinding;
string location = new Uri (sab.Location).AbsolutePath + sob.Location;
req += "POST " + location + "\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + GetLiteral ("string") + "\n";
req += "Host: " + GetLiteral ("string") + "\n\n";
req += BuildQueryString (msg);
}
else return GenerateHttpGetMessage (port, obin, oper, msg);
return req;
}
string BuildQueryString (OperationMessage opm)
{
string s = "";
Message msg = descriptions.GetMessage (opm.Message);
foreach (MessagePart part in msg.Parts)
{
if (s.Length != 0) s += "&";
s += part.Name + "=" + GetLiteral (part.Type.Name);
}
return s;
}
public string GenerateSoapMessage (OperationBinding obin, Operation oper, OperationMessage msg)
{
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
SoapBindingStyle style = (sob != null) ? sob.Style : SoapBindingStyle.Document;
MessageBinding msgbin = (msg is OperationInput) ? (MessageBinding) obin.Input : (MessageBinding)obin.Output;
SoapBodyBinding sbb = msgbin.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
SoapBindingUse bodyUse = (sbb != null) ? sbb.Use : SoapBindingUse.Literal;
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument ();
xtw.WriteStartElement ("soap", "Envelope", SoapEnvelopeNamespace);
xtw.WriteAttributeString ("xmlns", "xsi", null, XmlSchema.InstanceNamespace);
xtw.WriteAttributeString ("xmlns", "xsd", null, XmlSchema.Namespace);
if (bodyUse == SoapBindingUse.Encoded)
{
xtw.WriteAttributeString ("xmlns", "soapenc", null, SoapEncodingNamespace);
xtw.WriteAttributeString ("xmlns", "tns", null, msg.Message.Namespace);
}
// Serialize headers
bool writtenHeader = false;
foreach (object ob in msgbin.Extensions)
{
SoapHeaderBinding hb = ob as SoapHeaderBinding;
if (hb == null) continue;
if (!writtenHeader) {
xtw.WriteStartElement ("soap", "Header", SoapEnvelopeNamespace);
writtenHeader = true;
}
WriteHeader (xtw, hb);
}
if (writtenHeader)
xtw.WriteEndElement ();
// Serialize body
xtw.WriteStartElement ("soap", "Body", SoapEnvelopeNamespace);
currentUse = bodyUse;
WriteBody (xtw, oper, msg, sbb, style);
xtw.WriteEndElement ();
xtw.WriteEndElement ();
xtw.Close ();
return sw.ToString ();
}
void WriteHeader (XmlTextWriter xtw, SoapHeaderBinding header)
{
Message msg = descriptions.GetMessage (header.Message);
if (msg == null) throw new InvalidOperationException ("Message " + header.Message + " not found");
MessagePart part = msg.Parts [header.Part];
if (part == null) throw new InvalidOperationException ("Message part " + header.Part + " not found in message " + header.Message);
currentUse = header.Use;
if (currentUse == SoapBindingUse.Literal)
WriteRootElementSample (xtw, part.Element);
else
WriteTypeSample (xtw, part.Type);
}
void WriteBody (XmlTextWriter xtw, Operation oper, OperationMessage opm, SoapBodyBinding sbb, SoapBindingStyle style)
{
Message msg = descriptions.GetMessage (opm.Message);
if (msg.Parts.Count > 0 && msg.Parts[0].Name == "parameters")
{
MessagePart part = msg.Parts[0];
if (part.Element == XmlQualifiedName.Empty)
WriteTypeSample (xtw, part.Type);
else
WriteRootElementSample (xtw, part.Element);
}
else
{
string elemName = oper.Name;
string ns = "";
if (opm is OperationOutput) elemName += "Response";
if (style == SoapBindingStyle.Rpc) {
xtw.WriteStartElement (elemName, sbb.Namespace);
ns = sbb.Namespace;
}
foreach (MessagePart part in msg.Parts)
{
if (part.Element == XmlQualifiedName.Empty)
{
XmlSchemaElement elem = new XmlSchemaElement ();
elem.SchemaTypeName = part.Type;
elem.Name = part.Name;
WriteElementSample (xtw, ns, elem);
}
else
WriteRootElementSample (xtw, part.Element);
}
if (style == SoapBindingStyle.Rpc)
xtw.WriteEndElement ();
}
WriteQueuedTypeSamples (xtw);
}
void WriteRootElementSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaElement elem = (XmlSchemaElement) schemas.Find (qname, typeof(XmlSchemaElement));
if (elem == null) throw new InvalidOperationException ("Element not found: " + qname);
WriteElementSample (xtw, qname.Namespace, elem);
}
void WriteElementSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
bool sharedAnnType = false;
XmlQualifiedName root;
if (!elem.RefName.IsEmpty) {
XmlSchemaElement refElem = FindRefElement (elem);
if (refElem == null) throw new InvalidOperationException ("Global element not found: " + elem.RefName);
root = elem.RefName;
elem = refElem;
sharedAnnType = true;
}
else
root = new XmlQualifiedName (elem.Name, ns);
if (!elem.SchemaTypeName.IsEmpty)
{
XmlSchemaComplexType st = FindComplexTyype (elem.SchemaTypeName);
if (st != null)
WriteComplexTypeSample (xtw, st, root);
else
{
xtw.WriteStartElement (root.Name, root.Namespace);
if (currentUse == SoapBindingUse.Encoded)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, elem.SchemaTypeName));
xtw.WriteString (GetLiteral (FindBuiltInType (elem.SchemaTypeName)));
xtw.WriteEndElement ();
}
}
else if (elem.SchemaType == null)
{
xtw.WriteStartElement ("any");
xtw.WriteEndElement ();
}
else
WriteComplexTypeSample (xtw, (XmlSchemaComplexType) elem.SchemaType, root);
}
void WriteTypeSample (XmlTextWriter xtw, XmlQualifiedName qname)
{
XmlSchemaComplexType ctype = FindComplexTyype (qname);
if (ctype != null) {
WriteComplexTypeSample (xtw, ctype, qname);
return;
}
XmlSchemaSimpleType stype = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (stype != null) {
WriteSimpleTypeSample (xtw, stype);
return;
}
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
throw new InvalidOperationException ("Type not found: " + qname);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName)
{
WriteComplexTypeSample (xtw, stype, rootName, -1);
}
void WriteComplexTypeSample (XmlTextWriter xtw, XmlSchemaComplexType stype, XmlQualifiedName rootName, int id)
{
string ns = rootName.Namespace;
if (rootName.Name.IndexOf ("[]") != -1) rootName = arrayType;
if (currentUse == SoapBindingUse.Encoded) {
string pref = xtw.LookupPrefix (rootName.Namespace);
if (pref == null) pref = "q1";
xtw.WriteStartElement (pref, rootName.Name, rootName.Namespace);
ns = "";
}
else
xtw.WriteStartElement (rootName.Name, rootName.Namespace);
if (id != -1)
{
xtw.WriteAttributeString ("id", "id" + id);
if (rootName != arrayType)
xtw.WriteAttributeString ("type", XmlSchema.InstanceNamespace, GetQualifiedNameString (xtw, rootName));
}
WriteComplexTypeAttributes (xtw, stype);
WriteComplexTypeElements (xtw, ns, stype);
xtw.WriteEndElement ();
}
void WriteComplexTypeAttributes (XmlTextWriter xtw, XmlSchemaComplexType stype)
{
WriteAttributes (xtw, stype.Attributes, stype.AnyAttribute);
}
Dictionary<XmlSchemaComplexType,int> recursed_types = new Dictionary<XmlSchemaComplexType,int> ();
void WriteComplexTypeElements (XmlTextWriter xtw, string ns, XmlSchemaComplexType stype)
{
int prev = 0;
if (recursed_types.ContainsKey (stype))
prev = recursed_types [stype];
if (prev > 1)
return;
recursed_types [stype] = ++prev;
if (stype.Particle != null)
WriteParticleComplexContent (xtw, ns, stype.Particle);
else
{
if (stype.ContentModel is XmlSchemaSimpleContent)
WriteSimpleContent (xtw, (XmlSchemaSimpleContent)stype.ContentModel);
else if (stype.ContentModel is XmlSchemaComplexContent)
WriteComplexContent (xtw, ns, (XmlSchemaComplexContent)stype.ContentModel);
}
prev = recursed_types [stype];
recursed_types [stype] = --prev;
}
void WriteAttributes (XmlTextWriter xtw, XmlSchemaObjectCollection atts, XmlSchemaAnyAttribute anyat)
{
foreach (XmlSchemaObject at in atts)
{
if (at is XmlSchemaAttribute)
{
string ns;
XmlSchemaAttribute attr = (XmlSchemaAttribute)at;
XmlSchemaAttribute refAttr = attr;
// refAttr.Form; TODO
if (!attr.RefName.IsEmpty) {
refAttr = FindRefAttribute (attr.RefName);
if (refAttr == null) throw new InvalidOperationException ("Global attribute not found: " + attr.RefName);
}
string val;
if (!refAttr.SchemaTypeName.IsEmpty) val = FindBuiltInType (refAttr.SchemaTypeName);
else val = FindBuiltInType ((XmlSchemaSimpleType) refAttr.SchemaType);
xtw.WriteAttributeString (refAttr.Name, val);
}
else if (at is XmlSchemaAttributeGroupRef)
{
XmlSchemaAttributeGroupRef gref = (XmlSchemaAttributeGroupRef)at;
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
WriteAttributes (xtw, grp.Attributes, grp.AnyAttribute);
}
}
if (anyat != null)
xtw.WriteAttributeString ("custom-attribute","value");
}
void WriteParticleComplexContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle)
{
WriteParticleContent (xtw, ns, particle, false);
}
void WriteParticleContent (XmlTextWriter xtw, string ns, XmlSchemaParticle particle, bool multiValue)
{
if (particle is XmlSchemaGroupRef)
particle = GetRefGroupParticle ((XmlSchemaGroupRef)particle);
if (particle.MaxOccurs > 1) multiValue = true;
if (particle is XmlSchemaSequence) {
WriteSequenceContent (xtw, ns, ((XmlSchemaSequence)particle).Items, multiValue);
}
else if (particle is XmlSchemaChoice) {
if (((XmlSchemaChoice)particle).Items.Count == 1)
WriteSequenceContent (xtw, ns, ((XmlSchemaChoice)particle).Items, multiValue);
else
WriteChoiceContent (xtw, ns, (XmlSchemaChoice)particle, multiValue);
}
else if (particle is XmlSchemaAll) {
WriteSequenceContent (xtw, ns, ((XmlSchemaAll)particle).Items, multiValue);
}
}
void WriteSequenceContent (XmlTextWriter xtw, string ns, XmlSchemaObjectCollection items, bool multiValue)
{
foreach (XmlSchemaObject item in items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteContentItem (XmlTextWriter xtw, string ns, XmlSchemaObject item, bool multiValue)
{
if (item is XmlSchemaGroupRef)
item = GetRefGroupParticle ((XmlSchemaGroupRef)item);
if (item is XmlSchemaElement)
{
XmlSchemaElement elem = (XmlSchemaElement) item;
XmlSchemaElement refElem;
if (!elem.RefName.IsEmpty) refElem = FindRefElement (elem);
else refElem = elem;
int num = (elem.MaxOccurs == 1 && !multiValue) ? 1 : 2;
for (int n=0; n<num; n++)
{
if (currentUse == SoapBindingUse.Literal)
WriteElementSample (xtw, ns, refElem);
else
WriteRefTypeSample (xtw, ns, refElem);
}
}
else if (item is XmlSchemaAny)
{
xtw.WriteString (GetLiteral ("xml"));
}
else if (item is XmlSchemaParticle) {
WriteParticleContent (xtw, ns, (XmlSchemaParticle)item, multiValue);
}
}
void WriteChoiceContent (XmlTextWriter xtw, string ns, XmlSchemaChoice choice, bool multiValue)
{
foreach (XmlSchemaObject item in choice.Items)
WriteContentItem (xtw, ns, item, multiValue);
}
void WriteSimpleContent (XmlTextWriter xtw, XmlSchemaSimpleContent content)
{
XmlSchemaSimpleContentExtension ext = content.Content as XmlSchemaSimpleContentExtension;
if (ext != null)
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
XmlQualifiedName qname = GetContentBaseType (content.Content);
xtw.WriteString (GetLiteral (FindBuiltInType (qname)));
}
string FindBuiltInType (XmlQualifiedName qname)
{
if (qname.Namespace == XmlSchema.Namespace)
return qname.Name;
XmlSchemaComplexType ct = FindComplexTyype (qname);
if (ct != null)
{
XmlSchemaSimpleContent sc = ct.ContentModel as XmlSchemaSimpleContent;
if (sc == null) throw new InvalidOperationException ("Invalid schema");
return FindBuiltInType (GetContentBaseType (sc.Content));
}
XmlSchemaSimpleType st = (XmlSchemaSimpleType) schemas.Find (qname, typeof(XmlSchemaSimpleType));
if (st != null)
return FindBuiltInType (st);
throw new InvalidOperationException ("Definition of type " + qname + " not found");
}
string FindBuiltInType (XmlSchemaSimpleType st)
{
if (st.Content is XmlSchemaSimpleTypeRestriction) {
return FindBuiltInType (GetContentBaseType (st.Content));
}
else if (st.Content is XmlSchemaSimpleTypeList) {
string s = FindBuiltInType (GetContentBaseType (st.Content));
return s + " " + s + " ...";
}
else if (st.Content is XmlSchemaSimpleTypeUnion)
{
//Check if all types of the union are equal. If not, then will use anyType.
XmlSchemaSimpleTypeUnion uni = (XmlSchemaSimpleTypeUnion) st.Content;
string utype = null;
// Anonymous types are unique
if (uni.BaseTypes.Count != 0 && uni.MemberTypes.Length != 0)
return "string";
foreach (XmlQualifiedName mt in uni.MemberTypes)
{
string qn = FindBuiltInType (mt);
if (utype != null && qn != utype) return "string";
else utype = qn;
}
return utype;
}
else
return "string";
}
XmlQualifiedName GetContentBaseType (XmlSchemaObject ob)
{
if (ob is XmlSchemaSimpleContentExtension)
return ((XmlSchemaSimpleContentExtension)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleContentRestriction)
return ((XmlSchemaSimpleContentRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeRestriction)
return ((XmlSchemaSimpleTypeRestriction)ob).BaseTypeName;
else if (ob is XmlSchemaSimpleTypeList)
return ((XmlSchemaSimpleTypeList)ob).ItemTypeName;
else
return null;
}
void WriteComplexContent (XmlTextWriter xtw, string ns, XmlSchemaComplexContent content)
{
XmlQualifiedName qname;
XmlSchemaComplexContentExtension ext = content.Content as XmlSchemaComplexContentExtension;
if (ext != null) qname = ext.BaseTypeName;
else {
XmlSchemaComplexContentRestriction rest = (XmlSchemaComplexContentRestriction)content.Content;
qname = rest.BaseTypeName;
if (qname == arrayType) {
ParseArrayType (rest, out qname);
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "Item";
elem.SchemaTypeName = qname;
xtw.WriteAttributeString ("arrayType", SoapEncodingNamespace, qname.Name + "[2]");
WriteContentItem (xtw, ns, elem, true);
return;
}
}
// Add base map members to this map
XmlSchemaComplexType ctype = FindComplexTyype (qname);
WriteComplexTypeAttributes (xtw, ctype);
if (ext != null) {
// Add the members of this map
WriteAttributes (xtw, ext.Attributes, ext.AnyAttribute);
if (ext.Particle != null)
WriteParticleComplexContent (xtw, ns, ext.Particle);
}
WriteComplexTypeElements (xtw, ns, ctype);
}
void ParseArrayType (XmlSchemaComplexContentRestriction rest, out XmlQualifiedName qtype)
{
XmlSchemaAttribute arrayTypeAt = FindArrayAttribute (rest.Attributes);
XmlAttribute[] uatts = arrayTypeAt.UnhandledAttributes;
if (uatts == null || uatts.Length == 0) throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
XmlAttribute xat = null;
foreach (XmlAttribute at in uatts)
if (at.LocalName == "arrayType" && at.NamespaceURI == WsdlNamespace)
{ xat = at; break; }
if (xat == null)
throw new InvalidOperationException ("arrayType attribute not specified in array declaration");
string arrayType = xat.Value;
string type, ns;
int i = arrayType.LastIndexOf (":");
if (i == -1) ns = "";
else ns = arrayType.Substring (0,i);
int j = arrayType.IndexOf ("[", i+1);
if (j == -1) throw new InvalidOperationException ("Cannot parse WSDL array type: " + arrayType);
type = arrayType.Substring (i+1);
type = type.Substring (0, type.Length-2);
qtype = new XmlQualifiedName (type, ns);
}
XmlSchemaAttribute FindArrayAttribute (XmlSchemaObjectCollection atts)
{
foreach (object ob in atts)
{
XmlSchemaAttribute att = ob as XmlSchemaAttribute;
if (att != null && att.RefName == arrayTypeRefName) return att;
XmlSchemaAttributeGroupRef gref = ob as XmlSchemaAttributeGroupRef;
if (gref != null)
{
XmlSchemaAttributeGroup grp = (XmlSchemaAttributeGroup) schemas.Find (gref.RefName, typeof(XmlSchemaAttributeGroup));
att = FindArrayAttribute (grp.Attributes);
if (att != null) return att;
}
}
return null;
}
void WriteSimpleTypeSample (XmlTextWriter xtw, XmlSchemaSimpleType stype)
{
xtw.WriteString (GetLiteral (FindBuiltInType (stype)));
}
XmlSchemaParticle GetRefGroupParticle (XmlSchemaGroupRef refGroup)
{
XmlSchemaGroup grp = (XmlSchemaGroup) schemas.Find (refGroup.RefName, typeof (XmlSchemaGroup));
return grp.Particle;
}
XmlSchemaElement FindRefElement (XmlSchemaElement elem)
{
if (elem.RefName.Namespace == XmlSchema.Namespace)
{
if (anyElement != null) return anyElement;
anyElement = new XmlSchemaElement ();
anyElement.Name = "any";
anyElement.SchemaTypeName = anyType;
return anyElement;
}
return (XmlSchemaElement) schemas.Find (elem.RefName, typeof(XmlSchemaElement));
}
XmlSchemaAttribute FindRefAttribute (XmlQualifiedName refName)
{
if (refName.Namespace == XmlSchema.Namespace)
{
XmlSchemaAttribute at = new XmlSchemaAttribute ();
at.Name = refName.Name;
at.SchemaTypeName = new XmlQualifiedName ("string",XmlSchema.Namespace);
return at;
}
return (XmlSchemaAttribute) schemas.Find (refName, typeof(XmlSchemaAttribute));
}
void WriteRefTypeSample (XmlTextWriter xtw, string ns, XmlSchemaElement elem)
{
if (elem.SchemaTypeName.Namespace == XmlSchema.Namespace || schemas.Find (elem.SchemaTypeName, typeof(XmlSchemaSimpleType)) != null)
WriteElementSample (xtw, ns, elem);
else
{
xtw.WriteStartElement (elem.Name, ns);
xtw.WriteAttributeString ("href", "#id" + (queue.Count+1));
xtw.WriteEndElement ();
queue.Add (new EncodedType (ns, elem));
}
}
void WriteQueuedTypeSamples (XmlTextWriter xtw)
{
for (int n=0; n<queue.Count; n++)
{
EncodedType ec = (EncodedType) queue[n];
XmlSchemaComplexType st = FindComplexTyype (ec.Element.SchemaTypeName);
WriteComplexTypeSample (xtw, st, ec.Element.SchemaTypeName, n+1);
}
}
XmlSchemaComplexType FindComplexTyype (XmlQualifiedName qname)
{
if (qname.Name.IndexOf ("[]") != -1)
{
XmlSchemaComplexType stype = new XmlSchemaComplexType ();
stype.ContentModel = new XmlSchemaComplexContent ();
XmlSchemaComplexContentRestriction res = new XmlSchemaComplexContentRestriction ();
stype.ContentModel.Content = res;
res.BaseTypeName = arrayType;
XmlSchemaAttribute att = new XmlSchemaAttribute ();
att.RefName = arrayTypeRefName;
res.Attributes.Add (att);
XmlAttribute xat = document.CreateAttribute ("arrayType", WsdlNamespace);
xat.Value = qname.Namespace + ":" + qname.Name;
att.UnhandledAttributes = new XmlAttribute[] {xat};
return stype;
}
return (XmlSchemaComplexType) schemas.Find (qname, typeof(XmlSchemaComplexType));
}
string GetQualifiedNameString (XmlTextWriter xtw, XmlQualifiedName qname)
{
string pref = xtw.LookupPrefix (qname.Namespace);
if (pref != null) return pref + ":" + qname.Name;
xtw.WriteAttributeString ("xmlns", "q1", null, qname.Namespace);
return "q1:" + qname.Name;
}
protected virtual string GetLiteral (string s)
{
return s;
}
void GetOperationFormat (OperationBinding obin, out SoapBindingStyle style, out SoapBindingUse use)
{
style = SoapBindingStyle.Document;
use = SoapBindingUse.Literal;
SoapOperationBinding sob = obin.Extensions.Find (typeof(SoapOperationBinding)) as SoapOperationBinding;
if (sob != null) {
style = sob.Style;
SoapBodyBinding sbb = obin.Input.Extensions.Find (typeof(SoapBodyBinding)) as SoapBodyBinding;
if (sbb != null)
use = sbb.Use;
}
}
}
</script>
<head runat="server">
<%
Response.Write ("<link rel=\"alternate\" type=\"text/xml\" href=\"" + Request.FilePath + "?disco\"/>");
%>
<title><%=WebServiceName%> Web Service</title>
<style type="text/css">
BODY { font-family: Arial; margin-left: 20px; margin-top: 20px; font-size: x-small}
TABLE { font-size: x-small }
.title { color:dimgray; font-family: Arial; font-size:20pt; font-weight:900}
.operationTitle { color:dimgray; font-family: Arial; font-size:15pt; font-weight:900}
.method { font-size: x-small }
.bindingLabel { font-size: x-small; font-weight:bold; color:darkgray; line-height:8pt; display:block; margin-bottom:3px }
.label { font-size: small; font-weight:bold; color:darkgray }
.paramTable { font-size: x-small }
.paramTable TR { background-color: gainsboro }
.paramFormTable { font-size: x-small; padding: 10px; background-color: gainsboro }
.paramFormTable TR { background-color: gainsboro }
.paramInput { border: solid 1px gray }
.button {border: solid 1px gray }
.smallSeparator { height:3px; overflow:hidden }
.panel { background-color:whitesmoke; border: solid 1px silver; border-top: solid 1px silver }
.codePanel { background-color: white; font-size:x-small; padding:7px; border:solid 1px silver}
.code-xml { font-size:10pt; font-family:courier }
.code-cs { font-size:10pt; font-family:courier }
.code-vb { font-size:10pt; font-family:courier }
.tabLabelOn { font-weight:bold }
.tabLabelOff {color: darkgray }
.literal-placeholder {color: darkblue; font-weight:bold}
A:link { color: black; }
A:visited { color: black; }
A:active { color: black; }
A:hover { color: blue }
</style>
<script language="javascript" type="text/javascript">
var req;
function getXML (command, url, qs) {
if (url == "" || url.substring (0, 4) != "http")
return;
var post_data = null;
req = getReq ();
req.onreadystatechange = stateChange;
if (command == "GET") {
url = url + "?" + qs;
} else {
post_data = qs;
}
req.open (command, url, true);
if (command == "POST")
req.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
req.send (post_data);
}
function stateChange () {
if (req.readyState == 4) {
var node = document.getElementById("testresult_div");
var text = "";
if (req.status == 200) {
node.innerHTML = "<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
} else {
var ht = "<b style='color: red'>" + formatXml (req.status + " - " + req.statusText) + "</b>";
if (req.responseText != "")
ht = ht + "\n<div class='code-xml'>" + formatXml (req.responseText) + "</div>";
node.innerHTML = ht;
}
}
}
function formatXml (text)
{
var re = / /g;
text = text.replace (re, "&nbsp;");
re = /\t/g;
text = text.replace (re, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
re = /\<\s*(\/?)\s*(.*?)\s*(\/?)\s*\>/g;
text = text.replace (re,"{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
re = /{(\w*):(.*?)}/g;
text = text.replace (re,"<span style='color:$1'>$2</span>");
re = /"(.*?)"/g;
text = text.replace (re,"\"<span style='color:purple'>$1</span>\"");
re = /\r\n|\r|\n/g;
text = text.replace (re, "<br/>");
return text;
}
function getReq () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); // Firefox, Safari, ...
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function clearForm ()
{
document.getElementById("testFormResult").style.display="none";
}
</script>
</head>
<body>
<div class="title" style="margin-left:20px">
<span class="label">Web Service</span><br>
<%=WebServiceName%>
</div>
<!--
**********************************************************
Left panel
-->
<table border="0" width="100%" cellpadding="15px" cellspacing="15px">
<tr valign="top"><td width="150px" class="panel">
<div style="width:150px"></div>
<a class="method" href='<%=PageName%>'>Overview</a><br>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("wsdl")%>'>Service Description</a>
<div class="smallSeparator"></div>
<a class="method" href='<%=PageName + "?" + GetPageContext("proxy")%>'>Client proxy</a>
<br><br>
<asp:repeater id="BindingsRepeater" runat=server>
<itemtemplate name="itemtemplate">
<span class="bindingLabel"><%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%></span>
<asp:repeater id="OperationsRepeater" runat=server datasource='<%# ((Binding)Container.DataItem).Operations %>'>
<itemtemplate>
<a class="method" href="<%=PageName%>?<%=GetTabContext("op",null)%>op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%></a>
<div class="smallSeparator"></div>
</itemtemplate>
</asp:repeater>
<br>
</itemtemplate>
</asp:repeater>
</td><td class="panel">
<% if (CurrentPage == "main") {%>
<!--
**********************************************************
Web service overview
-->
<p class="label">Web Service Overview</p>
<%=WebServiceDescription%>
<br/><br/>
<% if (ProfileViolations != null && ProfileViolations.Count > 0) { %>
<p class="label">Basic Profile Conformance</p>
This web service does not conform to WS-I Basic Profile v1.1
<%
Response.Write ("<ul>");
foreach (BasicProfileViolation vio in ProfileViolations) {
Response.Write ("<li><b>" + vio.NormativeStatement + "</b>: " + vio.Details);
Response.Write ("<ul>");
foreach (string ele in vio.Elements)
Response.Write ("<li>" + ele + "</li>");
Response.Write ("</ul>");
Response.Write ("</li>");
}
Response.Write ("</ul>");
}%>
<%} if (DefaultBinding == null) {%>
This service does not contain any public web method.
<%} else if (CurrentPage == "op") {%>
<!--
**********************************************************
Operation description
-->
<span class="operationTitle"><%=CurrentOperationName%></span>
<br><br>
<% WriteTabs (); %>
<br><br><br>
<% if (CurrentTab == "main") { %>
<span class="label">Input Parameters</span>
<div class="smallSeparator"></div>
<% if (InParams.Count == 0) { %>
No input parameters<br>
<% } else { %>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="InputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<% } %>
<br>
<% if (OutParams.Count > 0) { %>
<span class="label">Output Parameters</span>
<div class="smallSeparator"></div>
<table class="paramTable" cellspacing="1" cellpadding="5">
<asp:repeater id="OutputParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Name")%></td>
<td width="150"><%#DataBinder.Eval(Container.DataItem, "Type")%></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<br>
<% } %>
<span class="label">Remarks</span>
<div class="smallSeparator"></div>
<%=OperationDocumentation%>
<br><br>
<span class="label">Technical information</span>
<div class="smallSeparator"></div>
Format: <%=CurrentOperationFormat%>
<br>Supported protocols: <%=CurrentOperationProtocols%>
<% } %>
<!--
**********************************************************
Operation description - Test form
-->
<% if (CurrentTab == "test") {
if (CurrentOperationSupportsTest) {%>
Enter values for the parameters and click the 'Invoke' button to test this method:<br><br>
<form action="<%=PageName%>" method="GET">
<input type="hidden" name="page" value="<%=CurrentPage%>">
<input type="hidden" name="tab" value="<%=CurrentTab%>">
<input type="hidden" name="op" value="<%=CurrentOperationName%>">
<input type="hidden" name="bnd" value="<%=CurrentOperationBinding%>">
<input type="hidden" name="ext" value="testform">
<table class="paramFormTable" cellspacing="0" cellpadding="3">
<asp:repeater id="InputFormParamsRepeater" runat=server>
<itemtemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Name")%>:&nbsp;</td>
<td width="150"><input class="paramInput" type="text" size="20" name="<%#DataBinder.Eval(Container.DataItem, "Name")%>"></td>
</tr>
</itemtemplate>
</asp:repeater>
<tr><td></td><td><input class="button" type="submit" value="Invoke">&nbsp;<input class="button" type="button" onclick="clearForm()" value="Clear"></td></tr>
</table>
</form>
<div id="testFormResult" style="display:<%= (HasFormResult?"block":"none") %>">
The web service returned the following result:<br/><br/>
<div class="codePanel" id="testresult_div">
</div>
<script language="javascript">
getXML ("<%= GetOrPost () %>", "<%= GetTestResultUrl () %>", "<%= GetQS () %>");
</script>
</div>
<% } else {%>
The test form is not available for this operation because it has parameters with a complex structure.
<% } %>
<% } %>
<!--
**********************************************************
Operation description - Message Layout
-->
<% if (CurrentTab == "msg") { %>
The following are sample SOAP requests and responses for each protocol supported by this method:
<br/><br/>
<% if (IsOperationSupported ("Soap")) { %>
<span class="label">Soap</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("Soap", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpGet")) { %>
<span class="label">HTTP Get</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpGet", false)%></div></div>
<br/>
<% } %>
<% if (IsOperationSupported ("HttpPost")) { %>
<span class="label">HTTP Post</span>
<br/><br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", true)%></div></div>
<br/>
<div class="codePanel"><div class="code-xml"><%=GenerateOperationMessages ("HttpPost", false)%></div></div>
<br/>
<% } %>
<% } %>
<%} else if (CurrentPage == "proxy") {%>
<!--
**********************************************************
Client Proxy
-->
<form action="<%=PageName%>" name="langForm" method="GET">
Select the language for which you want to generate a proxy
<input type="hidden" name="page" value="<%=CurrentPage%>">&nbsp;
<SELECT name="lang" onchange="langForm.submit()">
<%=GetOptionSel("cs",CurrentLanguage)%>C#</option>
<%=GetOptionSel("vb",CurrentLanguage)%>Visual Basic</option>
</SELECT>
&nbsp;&nbsp;
</form>
<br>
<span class="label"><%=CurrentProxytName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?code=" + CurrentLanguage%>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-<%=CurrentLanguage%>"><%=GetProxyCode ()%></div>
</div>
<%} else if (CurrentPage == "wsdl") {%>
<!--
**********************************************************
Service description
-->
<% if (descriptions.Count > 1 || schemas.Count > 1) {%>
The description of this web service is composed by several documents. Click on the document you want to see:
<ul>
<%
for (int n=0; n<descriptions.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=wsdl&docind=" + n + "'>WSDL document " + descriptions[n].TargetNamespace + "</a></li>");
for (int n=0; n<schemas.Count; n++)
Response.Write ("<li><a href='" + PageName + "?" + GetPageContext(null) + "doctype=schema&docind=" + n + "'>Xml Schema " + schemas[n].TargetNamespace + "</a></li>");
%>
</ul>
<%} else {%>
<%}%>
<br>
<span class="label"><%=CurrentDocumentName%></span>&nbsp;&nbsp;&nbsp;
<a href="<%=PageName + "?" + CurrentDocType + "=" + CurrentDocInd %>">Download</a>
<br><br>
<div class="codePanel">
<div class="code-xml"><%=GenerateDocument ()%></div>
</div>
<%}%>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</td>
<td width="20px"></td>
</tr>
</table>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="configProtectedData" type="System.Configuration.ProtectedConfigurationSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mscorlib" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="runtime" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="assemblyBinding" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="satelliteassemblies" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="startup" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>
<section name="system.codedom" type="System.CodeDom.Compiler.CodeDomConfigurationHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.diagnostics" type="System.Diagnostics.SystemDiagnosticsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="system.runtime.remoting" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<section name="system.windows.forms" type="System.Windows.Forms.WindowsFormsSection, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="windows" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false" />
<section name="strongNames" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowLocation="false"/>
<sectionGroup name="system.runtime.serialization" type="System.Runtime.Serialization.Configuration.SerializationSectionGroup, System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="dataContractSerializer" type="System.Runtime.Serialization.Configuration.DataContractSerializerSection, System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="anonymousIdentification" type="System.Web.Configuration.AnonymousIdentificationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="authorization" type="System.Web.Configuration.AuthorizationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="browserCaps" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="clientTarget" type="System.Web.Configuration.ClientTargetSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="compilation" type="System.Web.Configuration.CompilationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="customErrors" type="System.Web.Configuration.CustomErrorsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" />
<section name="globalization" type="System.Web.Configuration.GlobalizationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="healthMonitoring" type="System.Web.Configuration.HealthMonitoringSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="hostingEnvironment" type="System.Web.Configuration.HostingEnvironmentSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="httpCookies" type="System.Web.Configuration.HttpCookiesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpHandlers" type="System.Web.Configuration.HttpHandlersSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpModules" type="System.Web.Configuration.HttpModulesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="httpRuntime" type="System.Web.Configuration.HttpRuntimeSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="identity" type="System.Web.Configuration.IdentitySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="machineKey" type="System.Web.Configuration.MachineKeySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="membership" type="System.Web.Configuration.MembershipSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="mobileControls" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="deviceFilters" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="pages" type="System.Web.Configuration.PagesSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly" allowLocation="false" />
<section name="profile" type="System.Web.Configuration.ProfileSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="roleManager" type="System.Web.Configuration.RoleManagerSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="securityPolicy" type="System.Web.Configuration.SecurityPolicySection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="sessionPageState" type="System.Web.Configuration.SessionPageStateSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="sessionState" type="System.Web.Configuration.SessionStateSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="siteMap" type="System.Web.Configuration.SiteMapSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="trace" type="System.Web.Configuration.TraceSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="trust" type="System.Web.Configuration.TrustSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<section name="urlMappings" type="System.Web.Configuration.UrlMappingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="webControls" type="System.Web.Configuration.WebControlsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webParts" type="System.Web.Configuration.WebPartsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="webServices" type="System.Web.Services.Configuration.WebServicesSection, System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="xhtmlConformance" type="System.Web.Configuration.XhtmlConformanceSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<sectionGroup name="caching" type="System.Web.Configuration.SystemWebCachingSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="cache" type="System.Web.Configuration.CacheSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCache" type="System.Web.Configuration.OutputCacheSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="outputCacheSettings" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
<section name="sqlCacheDependency" type="System.Web.Configuration.OutputCacheSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
<section name="monoSettings" type="System.Web.Configuration.MonoSettingsSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</sectionGroup>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="authenticationModules" type="System.Net.Configuration.AuthenticationModulesSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="connectionManagement" type="System.Net.Configuration.ConnectionManagementSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="requestCaching" type="System.Net.Configuration.RequestCachingSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="settings" type="System.Net.Configuration.SettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webRequestModules" type="System.Net.Configuration.WebRequestModulesSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<section name="system.drawing" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="standardEndpoints" type="System.ServiceModel.Configuration.StandardEndpointsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="routing" type="System.ServiceModel.Routing.Configuration.RoutingSection, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="protocolMapping" type="System.ServiceModel.Configuration.ProtocolMappingSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
<sectionGroup name="system.transactions" type="System.Transactions.Configuration.TransactionsSectionGroup, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null">
<section name="defaultSettings" type="System.Transactions.Configuration.DefaultSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/>
<section name="machineSettings" type="System.Transactions.Configuration.MachineSettingsSection, System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
</sectionGroup>
<section name="system.webServer" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<section name="uri" type="System.Configuration.UriSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="system.runtime.caching" type="System.Runtime.Caching.Configuration.CachingSectionGroup, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="memoryCache" type="System.Runtime.Caching.Configuration.MemoryCacheSection, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
</sectionGroup>
</configSections>
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="LocalSqliteServer" connectionString="Data Source=|DataDirectory|/aspnetdb.sqlite;version=3" providerName="Mono.Data.Sqlite"/>
</connectionStrings>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
<providers>
<add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" keyContainerName="MonoFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
<add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="" useMachineProtection="true" keyEntropy="" />
</providers>
</configProtectedData>
<system.net>
<authenticationModules>
<add type="System.Net.BasicClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.DigestClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add type="System.Net.NtlmClient, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</authenticationModules>
<webRequestModules>
<add prefix="http" type="System.Net.HttpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="https" type="System.Net.HttpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="file" type="System.Net.FileWebRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add prefix="ftp" type="System.Net.FtpRequestCreator, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</webRequestModules>
</system.net>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http client" displayName="http client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="tcp client" displayName="tcp client (delay loaded)" delayLoadAsClientChannel="true" />
<channel ref="ipc client" displayName="ipc client (delay loaded)" delayLoadAsClientChannel="true" />
</channels>
</application>
<channels>
<channel id="http" type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http client" type="System.Runtime.Remoting.Channels.Http.HttpClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="http server" type="System.Runtime.Remoting.Channels.Http.HttpServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp" type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp client" type="System.Runtime.Remoting.Channels.Tcp.TcpClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="tcp server" type="System.Runtime.Remoting.Channels.Tcp.TcpServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc" type="System.Runtime.Remoting.Channels.Ipc.IpcChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc client" type="System.Runtime.Remoting.Channels.Ipc.IpcClientChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<channel id="ipc server" type="System.Runtime.Remoting.Channels.Ipc.IpcServerChannel, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</channels>
<channelSinkProviders>
<clientProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</clientProviders>
<serverProviders>
<formatter id="soap" type="System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<formatter id="binary" type="System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<provider id="wsdl" type="System.Runtime.Remoting.MetadataServices.SdlChannelSinkProvider, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</serverProviders>
</channelSinkProviders>
</system.runtime.remoting>
<appSettings>
<!--<add key="yourkey" value="your value" /> -->
<!--<remove key="a key defined higher in the hierarchy" /> -->
<!--<clear/> Removes all defined settings -->
</appSettings>
<system.diagnostics>
<trace autoflush="false" indentsize="4" />
</system.diagnostics>
<system.drawing>
</system.drawing>
<system.data>
<DbProviderFactories>
<add name="Mono Sqlite Data Provider" invariant="Mono.Data.SqliteClient"
description="Mono Framework Data Provider for SQLite (old version)"
type="Mono.Data.SqliteClient.SqliteFactory, Mono.Data.SqliteClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Mono Sqlite Provider" invariant="Mono.Data.Sqlite"
description="Mono Framework Data Provider for SQLite (new version)"
type="Mono.Data.Sqlite.SqliteFactory, Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
<add name="Odbc Data Provider" invariant="System.Data.Odbc"
description=".Net Framework Data Provider for Odbc"
type="System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb"
description=".Net Framework Data Provider for OleDb"
type="System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
description=".Net Framework Data Provider for Oracle"
type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="Sybase Data Provider" invariant="Mono.Data.SybaseClient"
description=".Net Framework Data Provider for Sybase"
type="Mono.Data.SybaseClient.SybaseClientFactory, Mono.Data.SybaseClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"/>
</DbProviderFactories>
</system.data>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass monoMD2="Mono.Security.Cryptography.MD2Managed, Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
<cryptoClass monoMD4="Mono.Security.Cryptography.MD4Managed, Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
</cryptoClasses>
<nameEntry name="MD2" class="monoMD2" />
<nameEntry name="MD4" class="monoMD4" />
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.2.840.113549.2.2" name="MD2" />
<oidEntry OID="1.2.840.113549.2.2" name="Mono.Security.Cryptography.MD2Managed" />
<oidEntry OID="1.2.840.113549.2.4" name="MD4" />
<oidEntry OID="1.2.840.113549.2.4" name="Mono.Security.Cryptography.MD4Managed" />
</oidMap>
</cryptographySettings>
</mscorlib>
<strongNames>
<pubTokenMapping>
<!-- ECMA key -->
<map Token="b77a5c561934e089" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (final) key -->
<map Token="b03f5f7f11d50a3a" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Microsoft (Web Service Enhancement) key -->
<map Token="31bf3856ad364e35" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- IBM (DB2 Data Provider) key -->
<map Token="7c307b91aa13d208" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- Silverlight 2.0 key -->
<map Token="7cec85d7bea7798e" PublicKey="002400000480000094000000060200000024000052534131000400000100010079159977d2d03a8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fddafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef0065d016df" />
<!-- XNA Framework key -->
<map Token="6d5c3888ef60e27d" PublicKey="0024000004800000940000000602000000240000525341310004000001000100f9a2641bac9847900d92a33d652ccc4e8b529360f908e7af53e57008b2a9a1938c32a160d47f795a23590557608d2c8d0c0e8846a052d070f9298281b8185343dbe5b479bd52de256f73c2a943e1a8a42065b5c918622dc14b1c0151dbd94d9a4543e7cd03e536b1b1d2d6d99af535d227ab9bdac76af9312a21d457bdf817e6" />
</pubTokenMapping>
</strongNames>
<system.web>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpSoap12"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
<conformanceWarnings>
<add name="BasicProfile1_1"/>
</conformanceWarnings>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
</webServices>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
<!-- <add name="AspNetSqlMembershipProvider" type="Mainsoft.Web.Security.GenericMembershipProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</membership>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="LocalSqlServer" />
<!-- <add name="AspNetSqlRoleProvider" type="Mainsoft.Web.Security.GenericRoleProvider, Mainsoft.Web.Security" applicationName="/" connectionStringName="LocalSqlServer" /> -->
</providers>
</roleManager>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
</system.web>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
<bindingElementExtensions>
<add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingElementExtensions>
<bindingExtensions>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
<endpointExtensions>
<add name="dynamicEndpoint" type="System.ServiceModel.Discovery.Configuration.DynamicEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="discoveryEndpoint" type="System.ServiceModel.Discovery.Configuration.DiscoveryEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="udpDiscoveryEndpoint" type="System.ServiceModel.Discovery.Configuration.UdpDiscoveryEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="announcementEndpoint" type="System.ServiceModel.Discovery.Configuration.AnnouncementEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="udpAnnouncementEndpoint" type="System.ServiceModel.Discovery.Configuration.UdpAnnouncementEndpointCollectionElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webHttpEndpoint" type="System.ServiceModel.Configuration.WebHttpEndpointCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="webScriptEndpoint" type="System.ServiceModel.Configuration.WebScriptEndpointCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</endpointExtensions>
</extensions>
</system.serviceModel>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<settingsMap>
<map sectionType="System.Web.Configuration.MembershipSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.MembershipSectionMapper, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqliteMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
<map sectionType="System.Web.Configuration.RoleManagerSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mapperType="Mono.Web.Util.RoleManagerSectionMapper, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
platform="Unix">
<!-- The 'what' tag specifies which region of the section to modify. The 'value' attribute value is mapper-specific and is not defined here. It can be
any expression understood by the mapper to designate the section region to modify.
-->
<what value="providers">
<!-- 'what' can contain any number of occurrences of any three elements:
replace - replace the designated region
add - add a new entry to the region
clear - clear the region
remove - remove the designatedregion
The attributes to any of the above are freeform and are not processed by the mapper manager. They are stored verbatim for the
mapper to peruse.
-->
<replace name="AspNetSqlRoleProvider"
type="System.Web.Security.SqliteRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqliteServer" />
</what>
</map>
</settingsMap>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<system.web>
<monoSettings>
<compilersCompatibility>
<compiler language="c#;cs;csharp" extension=".cs" compilerOptions="/nowarn:0169"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</compilersCompatibility>
</monoSettings>
<authorization>
<allow users="*" />
</authorization>
<httpHandlers>
<add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
<add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
<add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
<add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
<add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False" />
<add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False" />
<add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<!--
<add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
-->
<add verb="*" path="*.svc" type="System.ServiceModel.Channels.SvcHttpHandlerFactory, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add path="*.rules" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<!--
<add path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
<add path="*.xamlx" verb="*" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
-->
<add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True" />
<add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True" />
</httpHandlers>
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
<!--
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" />
-->
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
<!--
<add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule" />
-->
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
<!--
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" />
-->
<add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" />
<add name="Profile" type="System.Web.Profile.ProfileModule" />
<!--
<add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
-->
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
<authentication mode="Forms">
<forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<!--<user name="gonzalo" password="gonz"/>-->
</credentials>
</forms>
</authentication>
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"/>
<!--
culture="en-US"
uiculture="en-US" />
-->
<sessionState mode="InProc" />
<pages>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<!-- <add namespace="System.Web.UI.WebControls.WebParts" /> -->
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls.WebParts" assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls.Expressions" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</controls>
</pages>
<webControls clientScriptsLocation="/web_scripts" />
<compilation debug="false" defaultLanguage="c#" explicit="true" strict="false" >
<assemblies>
<!-- <add assembly="mscorlib" /> -->
<add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<!-- <add assembly="System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> -->
<add assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!-- <add assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<add assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- <add assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<!-- <add assembly="System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> -->
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<!-- <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> -->
<!-- <add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> -->
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!-- <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> -->
<add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="*" /> <!-- Add assemblies in bin directory -->
</assemblies>
<expressionBuilders>
<add expressionPrefix="Resources"
type="System.Web.Compilation.ResourceExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="ConnectionStrings"
type="System.Web.Compilation.ConnectionStringsExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="AppSettings"
type="System.Web.Compilation.AppSettingsExpressionBuilder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add expressionPrefix="RouteUrl" type="System.Web.Compilation.RouteUrlExpressionBuilder"/>
<!--
<add expressionPrefix="RouteValue" type="System.Web.Compilation.RouteValueExpressionBuilder"/>
-->
</expressionBuilders>
<buildProviders>
<add extension=".aspx" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider" />
<add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider" />
<add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider" />
<add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".resx" type="System.Web.Compilation.ResXBuildProvider" />
<add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider" />
<add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider" />
<add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider" />
<add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider" />
<add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider" />
<!--
<add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
<add extension=".xoml" type="System.ServiceModel.Activation.WorkflowServiceBuildProvider, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add extension=".svc" type="System.ServiceModel.Activation.ServiceBuildProvider, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add extension=".xamlx" type="System.Xaml.Hosting.XamlBuildProvider, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
-->
</buildProviders>
</compilation>
<httpRuntime executionTimeout="110"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="5000" />
<clientTarget>
<add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" />
<add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" />
<add alias="downlevel" userAgent="Unknown" />
</clientTarget>
<siteMap>
<providers>
<add name="AspNetXmlSiteMapProvider"
description="Default site map provider that reads in .sitemap xml files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
This diff could not be displayed because it is too large.
<configuration>
<dllmap dll="i:cygwin1.dll" target="libc.dylib" os="!windows" />
<dllmap dll="libc" target="libc.dylib" os="!windows"/>
<dllmap dll="intl" target="libintl.dylib" os="!windows"/>
<dllmap dll="intl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" target="libintl.dylib" os="!windows"/>
<dllmap dll="i:libxslt.dll" target="libxslt.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libodbc.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
<dllmap dll="oci" target="libclntsh.dylib" os="!windows"/>
<dllmap dll="db2cli" target="libdb2_36.dylib" os="!windows"/>
<dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper.dylib" os="!windows" />
<dllmap dll="libmono-btls-shared" target="$mono_libdir/libmono-btls-shared.dylib" os="!windows" />
<dllmap dll="i:msvcrt" target="libc.dylib" os="!windows"/>
<dllmap dll="i:msvcrt.dll" target="libc.dylib" os="!windows"/>
<dllmap dll="sqlite" target="libsqlite.0.dylib" os="!windows"/>
<dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="!windows"/>
<dllmap dll="libX11" target="libX11.dylib" os="!windows" />
<dllmap dll="libgdk-x11-2.0" target="libgdk-x11-2.0.dylib" os="!windows"/>
<dllmap dll="libgtk-x11-2.0" target="libgtk-x11-2.0.dylib" os="!windows"/>
<dllmap dll="libXinerama" target="libXinerama.so.1" os="!windows" />
<dllmap dll="libcairo-2.dll" target="libcairo.so.2" os="!windows"/>
<dllmap dll="libcairo-2.dll" target="libcairo.2.dylib" os="osx"/>
<dllmap dll="libcups" target="libcups.so.2" os="!windows"/>
<dllmap dll="libcups" target="libcups.dylib" os="osx"/>
<dllmap dll="i:kernel32.dll">
<dllentry dll="__Internal" name="CopyMemory" target="mono_win32_compat_CopyMemory"/>
<dllentry dll="__Internal" name="FillMemory" target="mono_win32_compat_FillMemory"/>
<dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
<dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
</dllmap>
<dllmap dll="gdiplus" target="/Users/builduser/buildslave/mono/build/external/buildscripts/add_to_build_results/monodistribution/lib/libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdiplus.dll" target="/Users/builduser/buildslave/mono/build/external/buildscripts/add_to_build_results/monodistribution/lib/libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdi32" target="/Users/builduser/buildslave/mono/build/external/buildscripts/add_to_build_results/monodistribution/lib/libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdi32.dll" target="/Users/builduser/buildslave/mono/build/external/buildscripts/add_to_build_results/monodistribution/lib/libgdiplus.dylib" os="!windows"/>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<mconfig>
<configuration>
<handlers>
<handler section="feature"
type="Mono.MonoConfig.FeatureNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.FeatureNode, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="configBlock"
type="Mono.MonoConfig.ConfigBlockNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.ConfigBlockBlock, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="default"
type="Mono.MonoConfig.DefaultNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.DefaultNode, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<handler section="defaultConfigFile"
type="Mono.MonoConfig.DefaultConfigFileNodeHandler, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null"
storageType="System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Mono.MonoConfig.DefaultConfigFile, mconfig, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</handlers>
</configuration>
<feature name="AJAX" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any .NET 3.5 AJAX.NET application.
]]></description>
<blocks>
<block name="AJAX config sections"/>
<block name="AJAX controls registration"/>
<block name="AJAX compilation"/>
<block name="AJAX HTTP handlers"/>
<block name="AJAX HTTP modules"/>
<block name="AJAX CodeDOM 3.5 settings"/>
<block name="AJAX runtime settings"/>
<block name="AJAX system.webServer"/>
<block name="" />
</blocks>
</feature>
<feature name="AJAX1" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any AJAX.NET 1.0 application.
]]></description>
<blocks>
<block name="AJAX1 config sections"/>
<block name="AJAX1 controls registration"/>
<block name="AJAX1 compilation"/>
<block name="AJAX1 HTTP handlers"/>
<block name="AJAX1 HTTP modules"/>
<block name="AJAX1 system.web.extensions"/>
<block name="AJAX1 system.webServer"/>
<block name="" />
</blocks>
</feature>
<feature name="DynamicData" target="web">
<description><![CDATA[
Adds entries to your Web.config file which are required by any ASP.NET DynamicData application.
]]></description>
<blocks>
<block name="AJAX config sections"/>
<block name="AJAX controls registration"/>
<block name="AJAX compilation"/>
<block name="AJAX HTTP handlers"/>
<block name="AJAX HTTP modules"/>
<block name="AJAX system.web.extensions"/>
<block name="AJAX system.webServer"/>
<block name="DynamicData controls registration" />
<block name="DynamicData compilation" />
<block name="DynamicData HTTP modules" />
</blocks>
</feature>
<feature name="SettingsMapProtection" target="web">
<description><![CDATA[
Adds an entry to your config file which will prevent download of the 'settings.map' file. The
file is used by the settings mapping manager to modify configuration settings depending on the operating
system under which your application runs. Add this feature only if you have your own custom 'settings.map'
file in the top-level directory of your ASP.NET application.
]]></description>
<blocks>
<block name="SettingsMap Handler"/>
</blocks>
</feature>
<!-- configuration blocks required by the features -->
<configBlock name="SettingsMap Handler">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add verb="*" path="settings.map" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
]]>
</contents>
</configBlock>
<!-- AJAX.NET 3.5 start -->
<configBlock name="AJAX config sections">
<requires>
<section name="configuration">
<section name="configSections" attachPoint="true"/>
</section>
</requires>
<contents>
<![CDATA[
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
]]>
</contents>
</configBlock>
<configBlock name="AJAX controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX HTTP handlers">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX CodeDOM 3.5 settings">
<requires>
<section name="configuration">
<section name="system.codedom">
<section name="compilers" defaultBlockName="system.codedom.compilers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
]]>
</contents>
</configBlock>
<configBlock name="AJAX runtime settings">
<requires>
<section name="configuration">
<section name="runtime"/>
</section>
</requires>
<contents>
<![CDATA[
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
]]>
</contents>
</configBlock>
<configBlock name="AJAX system.webServer">
<requires>
<section name="configuration">
<section name="system.webServer"/>
</section>
</requires>
<contents>
<![CDATA[
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
]]>
</contents>
</configBlock>
<!-- AJAX.NET 3.5 end -->
<!-- AJAX.NET 1.0 start -->
<configBlock name="AJAX1 config sections">
<requires>
<section name="configuration">
<section name="configSections" attachPoint="true"/>
</section>
</requires>
<contents>
<![CDATA[
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 HTTP handlers">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpHandlers" defaultBlockName="system.web.httpHandlers"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 system.web.extensions">
<requires>
<section name="configuration">
<section name="system.web.extensions"/>
</section>
</requires>
<contents>
<![CDATA[
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--
<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->
<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
writeAccessProperties attributes. -->
<!--
<profileService enabled="true"
readAccessProperties="propertyname1,propertyname2"
writeAccessProperties="propertyname1,propertyname2" />
-->
</webServices>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
</scripting>
]]>
</contents>
</configBlock>
<configBlock name="AJAX1 system.webServer">
<requires>
<section name="configuration">
<section name="system.webServer"/>
</section>
</requires>
<contents>
<![CDATA[
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
]]>
</contents>
</configBlock>
<!-- AJAX.NET 1.0 end -->
<configBlock name="DynamicData controls registration">
<requires>
<section name="configuration">
<section name="system.web">
<section name="pages" defaultBlockName="system.web.pages">
<section name="controls" defaultBlockName="system.web.pages.controls"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="DynamicData compilation">
<requires>
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation">
<section name="assemblies" defaultBlockName="system.web.compilation.assemblies"/>
</section>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<configBlock name="DynamicData HTTP modules">
<requires>
<section name="configuration">
<section name="system.web">
<section name="httpModules" defaultBlockName="system.web.httpModules"/>
</section>
</section>
</requires>
<contents>
<![CDATA[
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
]]>
</contents>
</configBlock>
<!-- default contents for missing sections -->
<default section="configuration" target="any">
<![CDATA[
<configuration>
</configuration>
]]>
</default>
<default section="configSections" target="any">
<![CDATA[
<configSections>
</configSections>
]]>
</default>
<default section="system.web" target="web">
<![CDATA[
<system.web>
</system.web>
]]>
</default>
<default section="system.web.pages" target="web">
<![CDATA[
<pages>
</pages>
]]>
</default>
<default section="system.web.pages.controls" target="web">
<![CDATA[
<controls>
</controls>
]]>
</default>
<default section="system.web.compilation" target="web">
<![CDATA[
<compilation debug="true">
</compilation>
]]>
</default>
<default section="system.web.compilation.assemblies" target="web">
<![CDATA[
<assemblies>
</assemblies>
]]>
</default>
<default section="system.web.httpHandlers" target="web">
<![CDATA[
<httpHandlers>
</httpHandlers>
]]>
</default>
<default section="system.web.httpModules" target="web">
<![CDATA[
<httpModules>
</httpModules>
]]>
</default>
<default section="system.web.extensions" target="web">
<![CDATA[
<system.web.extensions>
</system.web.extensions>
]]>
</default>
<default section="system.webServer" target="web">
<![CDATA[
<system.webServer>
</system.webServer>
]]>
</default>
<default section="system.web.customErrors" target="web">
<![CDATA[
<customErrors mode="RemoteOnly"/>
]]>
</default>
<default section="system.codedom" target="any">
<![CDATA[
<system.codedom>
</system.codedom>
]]>
</default>
<default section="system.codedom.compilers" target="any">
<![CDATA[
<compilers>
</compilers>
]]>
</default>
<default section="runtime" target="any">
<![CDATA[
<runtime>
</runtime>
]]>
</default>
<!-- default config file definitions -->
<defaultConfigFile name="web.config" fileName="Web.config" target="web">
<section name="configuration">
<section name="system.web">
<section name="compilation" defaultBlockName="system.web.compilation"/>
<section name="customErrors" defaultBlockName="system.web.customErrors"/>
</section>
</section>
</defaultConfigFile>
</mconfig>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.AIModule</name>
</assembly>
<member name="T:UnityEngine.AI.NavMesh">
<summary>
<para>Singleton class to access the baked NavMesh.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMesh.avoidancePredictionTime">
<summary>
<para>Describes how far in the future the agents predict collisions for avoidance.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMesh.onPreUpdate">
<summary>
<para>Set a function to be called before the NavMesh is updated during the frame update execution.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMesh.pathfindingIterationsPerFrame">
<summary>
<para>The maximum amount of nodes processed each frame in the asynchronous pathfinding process.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMesh.AddLink(UnityEngine.AI.NavMeshLinkData)">
<summary>
<para>Adds a link to the NavMesh. The link is described by the NavMeshLinkData struct.</para>
</summary>
<param name="link">Describing the properties of the link.</param>
<returns>
<para>Representing the added link.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.AddLink(UnityEngine.AI.NavMeshLinkData,UnityEngine.Vector3,UnityEngine.Quaternion)">
<summary>
<para>Adds a link to the NavMesh. The link is described by the NavMeshLinkData struct.</para>
</summary>
<param name="link">Describing the properties of the link.</param>
<param name="position">Translate the link to this position.</param>
<param name="rotation">Rotate the link to this orientation.</param>
<returns>
<para>Representing the added link.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.AddNavMeshData(UnityEngine.AI.NavMeshData)">
<summary>
<para>Adds the specified NavMeshData to the game.</para>
</summary>
<param name="navMeshData">Contains the data for the navmesh.</param>
<returns>
<para>Representing the added navmesh.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.AddNavMeshData(UnityEngine.AI.NavMeshData,UnityEngine.Vector3,UnityEngine.Quaternion)">
<summary>
<para>Adds the specified NavMeshData to the game.</para>
</summary>
<param name="navMeshData">Contains the data for the navmesh.</param>
<param name="position">Translate the navmesh to this position.</param>
<param name="rotation">Rotate the navmesh to this orientation.</param>
<returns>
<para>Representing the added navmesh.</para>
</returns>
</member>
<member name="F:UnityEngine.AI.NavMesh.AllAreas">
<summary>
<para>Area mask constant that includes all NavMesh areas.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMesh.CalculatePath(UnityEngine.Vector3,UnityEngine.Vector3,System.Int32,UnityEngine.AI.NavMeshPath)">
<summary>
<para>Calculate a path between two points and store the resulting path.</para>
</summary>
<param name="sourcePosition">The initial position of the path requested.</param>
<param name="targetPosition">The final position of the path requested.</param>
<param name="areaMask">A bitfield mask specifying which NavMesh areas can be passed when calculating a path.</param>
<param name="path">The resulting path.</param>
<returns>
<para>True if a either a complete or partial path is found and false otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.CalculatePath(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.AI.NavMeshQueryFilter,UnityEngine.AI.NavMeshPath)">
<summary>
<para>Calculates a path between two positions mapped to the NavMesh, subject to the constraints and costs defined by the filter argument.</para>
</summary>
<param name="sourcePosition">The initial position of the path requested.</param>
<param name="targetPosition">The final position of the path requested.</param>
<param name="filter">A filter specifying the cost of NavMesh areas that can be passed when calculating a path.</param>
<param name="path">The resulting path.</param>
<returns>
<para>True if a either a complete or partial path is found and false otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.CalculateTriangulation">
<summary>
<para>Calculates triangulation of the current navmesh.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMesh.CreateSettings">
<summary>
<para>Creates and returns a new entry of NavMesh build settings available for runtime NavMesh building.</para>
</summary>
<returns>
<para>The created settings.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.FindClosestEdge(UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,System.Int32)">
<summary>
<para>Locate the closest NavMesh edge from a point on the NavMesh.</para>
</summary>
<param name="sourcePosition">The origin of the distance query.</param>
<param name="hit">Holds the properties of the resulting location.</param>
<param name="areaMask">A bitfield mask specifying which NavMesh areas can be passed when finding the nearest edge.</param>
<returns>
<para>True if a nearest edge is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.FindClosestEdge(UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,UnityEngine.AI.NavMeshQueryFilter)">
<summary>
<para>Locate the closest NavMesh edge from a point on the NavMesh, subject to the constraints of the filter argument.</para>
</summary>
<param name="sourcePosition">The origin of the distance query.</param>
<param name="hit">Holds the properties of the resulting location.</param>
<param name="filter">A filter specifying which NavMesh areas can be passed when finding the nearest edge.</param>
<returns>
<para>True if a nearest edge is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetAreaCost(System.Int32)">
<summary>
<para>Gets the cost for path finding over geometry of the area type.</para>
</summary>
<param name="areaIndex">Index of the area to get.</param>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetAreaFromName(System.String)">
<summary>
<para>Returns the area index for a named NavMesh area type.</para>
</summary>
<param name="areaName">Name of the area to look up.</param>
<returns>
<para>Index if the specified are, or -1 if no area found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetLayerCost(System.Int32)">
<summary>
<para>Gets the cost for traversing over geometry of the layer type on all agents.</para>
</summary>
<param name="layer"></param>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetNavMeshLayerFromName(System.String)">
<summary>
<para>Returns the layer index for a named layer.</para>
</summary>
<param name="layerName"></param>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetSettingsByID(System.Int32)">
<summary>
<para>Returns an existing entry of NavMesh build settings.</para>
</summary>
<param name="agentTypeID">The ID to look for.</param>
<returns>
<para>The settings found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetSettingsByIndex(System.Int32)">
<summary>
<para>Returns an existing entry of NavMesh build settings by its ordered index.</para>
</summary>
<param name="index">The index to retrieve from.</param>
<returns>
<para>The found settings.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetSettingsCount">
<summary>
<para>Returns the number of registered NavMesh build settings.</para>
</summary>
<returns>
<para>The number of registered entries.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.GetSettingsNameFromID(System.Int32)">
<summary>
<para>Returns the name associated with the NavMesh build settings matching the provided agent type ID.</para>
</summary>
<param name="agentTypeID">The ID to look for.</param>
<returns>
<para>The name associated with the ID found.</para>
</returns>
</member>
<member name="T:UnityEngine.AI.NavMesh.OnNavMeshPreUpdate">
<summary>
<para>A delegate which can be used to register callback methods to be invoked before the NavMesh system updates.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMesh.Raycast(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,System.Int32)">
<summary>
<para>Trace a line between two points on the NavMesh.</para>
</summary>
<param name="sourcePosition">The origin of the ray.</param>
<param name="targetPosition">The end of the ray.</param>
<param name="hit">Holds the properties of the ray cast resulting location.</param>
<param name="areaMask">A bitfield mask specifying which NavMesh areas can be passed when tracing the ray.</param>
<returns>
<para>True if the ray is terminated before reaching target position. Otherwise returns false.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.Raycast(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,UnityEngine.AI.NavMeshQueryFilter)">
<summary>
<para>Traces a line between two positions on the NavMesh, subject to the constraints defined by the filter argument.</para>
</summary>
<param name="sourcePosition">The origin of the ray.</param>
<param name="targetPosition">The end of the ray.</param>
<param name="hit">Holds the properties of the ray cast resulting location.</param>
<param name="filter">A filter specifying which NavMesh areas can be passed when tracing the ray.</param>
<returns>
<para>True if the ray is terminated before reaching target position. Otherwise returns false.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.RemoveLink(UnityEngine.AI.NavMeshLinkInstance)">
<summary>
<para>Removes a link from the NavMesh.</para>
</summary>
<param name="handle">The instance of a link to remove.</param>
</member>
<member name="M:UnityEngine.AI.NavMesh.RemoveNavMeshData(UnityEngine.AI.NavMeshDataInstance)">
<summary>
<para>Removes the specified NavMeshDataInstance from the game, making it unavailable for agents and queries.</para>
</summary>
<param name="handle">The instance of a NavMesh to remove.</param>
</member>
<member name="M:UnityEngine.AI.NavMesh.RemoveSettings(System.Int32)">
<summary>
<para>Removes the build settings matching the agent type ID.</para>
</summary>
<param name="agentTypeID">The ID of the entry to remove.</param>
</member>
<member name="M:UnityEngine.AI.NavMesh.SamplePosition(UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,System.Single,System.Int32)">
<summary>
<para>Finds the closest point on NavMesh within specified range.</para>
</summary>
<param name="sourcePosition">The origin of the sample query.</param>
<param name="hit">Holds the properties of the resulting location.</param>
<param name="maxDistance">Sample within this distance from sourcePosition.</param>
<param name="areaMask">A mask specifying which NavMesh areas are allowed when finding the nearest point.</param>
<returns>
<para>True if a nearest point is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.SamplePosition(UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;,System.Single,UnityEngine.AI.NavMeshQueryFilter)">
<summary>
<para>Samples the position closest to sourcePosition - on any NavMesh built for the agent type specified by the filter.</para>
</summary>
<param name="sourcePosition">The origin of the sample query.</param>
<param name="hit">Holds the properties of the resulting location.</param>
<param name="maxDistance">Sample within this distance from sourcePosition.</param>
<param name="filter">A filter specifying which NavMesh areas are allowed when finding the nearest point.</param>
<returns>
<para>True if a nearest point is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMesh.SetAreaCost(System.Int32,System.Single)">
<summary>
<para>Sets the cost for finding path over geometry of the area type on all agents.</para>
</summary>
<param name="areaIndex">Index of the area to set.</param>
<param name="cost">New cost.</param>
</member>
<member name="M:UnityEngine.AI.NavMesh.SetLayerCost(System.Int32,System.Single)">
<summary>
<para>Sets the cost for traversing over geometry of the layer type on all agents.</para>
</summary>
<param name="layer"></param>
<param name="cost"></param>
</member>
<member name="T:UnityEngine.AI.NavMeshAgent">
<summary>
<para>Navigation mesh agent.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.acceleration">
<summary>
<para>The maximum acceleration of an agent as it follows a path, given in units / sec^2.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.agentTypeID">
<summary>
<para>The type ID for the agent.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.angularSpeed">
<summary>
<para>Maximum turning speed in (deg/s) while following a path.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.areaMask">
<summary>
<para>Specifies which NavMesh areas are passable. Changing areaMask will make the path stale (see isPathStale).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.autoBraking">
<summary>
<para>Should the agent brake automatically to avoid overshooting the destination point?</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.autoRepath">
<summary>
<para>Should the agent attempt to acquire a new path if the existing path becomes invalid?</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.autoTraverseOffMeshLink">
<summary>
<para>Should the agent move across OffMeshLinks automatically?</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.avoidancePriority">
<summary>
<para>The avoidance priority level.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.baseOffset">
<summary>
<para>The relative vertical displacement of the owning GameObject.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.currentOffMeshLinkData">
<summary>
<para>The current OffMeshLinkData.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.desiredVelocity">
<summary>
<para>The desired velocity of the agent including any potential contribution from avoidance. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.destination">
<summary>
<para>Gets or attempts to set the destination of the agent in world-space units.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.hasPath">
<summary>
<para>Does the agent currently have a path? (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.height">
<summary>
<para>The height of the agent for purposes of passing under obstacles, etc.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.isOnNavMesh">
<summary>
<para>Is the agent currently bound to the navmesh? (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.isOnOffMeshLink">
<summary>
<para>Is the agent currently positioned on an OffMeshLink? (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.isPathStale">
<summary>
<para>Is the current path stale. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.isStopped">
<summary>
<para>This property holds the stop or resume condition of the NavMesh agent.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.navMeshOwner">
<summary>
<para>Returns the owning object of the NavMesh the agent is currently placed on (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.nextOffMeshLinkData">
<summary>
<para>The next OffMeshLinkData on the current path.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.nextPosition">
<summary>
<para>Gets or sets the simulation position of the navmesh agent.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.obstacleAvoidanceType">
<summary>
<para>The level of quality of avoidance.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.path">
<summary>
<para>Property to get and set the current path.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.pathPending">
<summary>
<para>Is a path in the process of being computed but not yet ready? (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.pathStatus">
<summary>
<para>The status of the current path (complete, partial or invalid).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.radius">
<summary>
<para>The avoidance radius for the agent.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.remainingDistance">
<summary>
<para>The distance between the agent's position and the destination on the current path. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.speed">
<summary>
<para>Maximum movement speed when following a path.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.steeringTarget">
<summary>
<para>Get the current steering target along the path. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.stoppingDistance">
<summary>
<para>Stop within this distance from the target position.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.updatePosition">
<summary>
<para>Gets or sets whether the transform position is synchronized with the simulated agent position. The default value is true.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.updateRotation">
<summary>
<para>Should the agent update the transform orientation?</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.updateUpAxis">
<summary>
<para>Allows you to specify whether the agent should be aligned to the up-axis of the NavMesh or link that it is placed on.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.velocity">
<summary>
<para>Access the current velocity of the NavMeshAgent component, or set a velocity to control the agent manually.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshAgent.walkableMask">
<summary>
<para>Specifies which NavMesh layers are passable (bitfield). Changing walkableMask will make the path stale (see isPathStale).</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.ActivateCurrentOffMeshLink(System.Boolean)">
<summary>
<para>Enables or disables the current off-mesh link.</para>
</summary>
<param name="activated">Is the link activated?</param>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.CalculatePath(UnityEngine.Vector3,UnityEngine.AI.NavMeshPath)">
<summary>
<para>Calculate a path to a specified point and store the resulting path.</para>
</summary>
<param name="targetPosition">The final position of the path requested.</param>
<param name="path">The resulting path.</param>
<returns>
<para>True if a path is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.CompleteOffMeshLink">
<summary>
<para>Completes the movement on the current OffMeshLink.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.FindClosestEdge(UnityEngine.AI.NavMeshHit&amp;)">
<summary>
<para>Locate the closest NavMesh edge.</para>
</summary>
<param name="hit">Holds the properties of the resulting location.</param>
<returns>
<para>True if a nearest edge is found.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.GetAreaCost(System.Int32)">
<summary>
<para>Gets the cost for path calculation when crossing area of a particular type.</para>
</summary>
<param name="areaIndex">Area Index.</param>
<returns>
<para>Current cost for specified area index.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.GetLayerCost(System.Int32)">
<summary>
<para>Gets the cost for crossing ground of a particular type.</para>
</summary>
<param name="layer">Layer index.</param>
<returns>
<para>Current cost of specified layer.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.Move(UnityEngine.Vector3)">
<summary>
<para>Apply relative movement to current position.</para>
</summary>
<param name="offset">The relative movement vector.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.Raycast(UnityEngine.Vector3,UnityEngine.AI.NavMeshHit&amp;)">
<summary>
<para>Trace a straight path towards a target postion in the NavMesh without moving the agent.</para>
</summary>
<param name="targetPosition">The desired end position of movement.</param>
<param name="hit">Properties of the obstacle detected by the ray (if any).</param>
<returns>
<para>True if there is an obstacle between the agent and the target position, otherwise false.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.ResetPath">
<summary>
<para>Clears the current path.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.Resume">
<summary>
<para>Resumes the movement along the current path after a pause.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.SamplePathPosition(System.Int32,System.Single,UnityEngine.AI.NavMeshHit&amp;)">
<summary>
<para>Sample a position along the current path.</para>
</summary>
<param name="areaMask">A bitfield mask specifying which NavMesh areas can be passed when tracing the path.</param>
<param name="maxDistance">Terminate scanning the path at this distance.</param>
<param name="hit">Holds the properties of the resulting location.</param>
<returns>
<para>True if terminated before reaching the position at maxDistance, false otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.SetAreaCost(System.Int32,System.Single)">
<summary>
<para>Sets the cost for traversing over areas of the area type.</para>
</summary>
<param name="areaIndex">Area cost.</param>
<param name="areaCost">New cost for the specified area index.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.SetDestination(UnityEngine.Vector3)">
<summary>
<para>Sets or updates the destination thus triggering the calculation for a new path.</para>
</summary>
<param name="target">The target point to navigate to.</param>
<returns>
<para>True if the destination was requested successfully, otherwise false.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.SetLayerCost(System.Int32,System.Single)">
<summary>
<para>Sets the cost for traversing over geometry of the layer type.</para>
</summary>
<param name="layer">Layer index.</param>
<param name="cost">New cost for the specified layer.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.SetPath(UnityEngine.AI.NavMeshPath)">
<summary>
<para>Assign a new path to this agent.</para>
</summary>
<param name="path">New path to follow.</param>
<returns>
<para>True if the path is succesfully assigned.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.Stop">
<summary>
<para>Stop movement of this agent along its current path.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshAgent.Warp(UnityEngine.Vector3)">
<summary>
<para>Warps agent to the provided position.</para>
</summary>
<param name="newPosition">New position to warp the agent to.</param>
<returns>
<para>True if agent is successfully warped, otherwise false.</para>
</returns>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildDebugFlags">
<summary>
<para>Bitmask used for operating with debug data from the NavMesh build process.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.All">
<summary>
<para>All debug data from the NavMesh build process is taken into consideration.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.InputGeometry">
<summary>
<para>The triangles of all the geometry that is used as a base for computing the new NavMesh.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.None">
<summary>
<para>No debug data from the NavMesh build process is taken into consideration.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.PolygonMeshes">
<summary>
<para>Meshes of convex polygons constructed within the unified contours of adjacent regions.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.PolygonMeshesDetail">
<summary>
<para>The triangulated meshes with height details that better approximate the source geometry.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.RawContours">
<summary>
<para>The contours that follow precisely the edges of each surface region.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.Regions">
<summary>
<para>The segmentation of the traversable surfaces into smaller areas necessary for producing simple polygons.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.SimplifiedContours">
<summary>
<para>Contours bounding each of the surface regions, described through fewer vertices and straighter edges compared to RawContours.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildDebugFlags.Voxels">
<summary>
<para>The voxels produced by rasterizing the source geometry into walkable and unwalkable areas.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildDebugSettings">
<summary>
<para>Specify which of the temporary data generated while building the NavMesh should be retained in memory after the process has completed.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildDebugSettings.flags">
<summary>
<para>Specify which types of debug data to collect when building the NavMesh.</para>
</summary>
</member>
<member name="T:UnityEditor.AI.NavMeshBuilder">
<summary>
<para>Navigation mesh builder interface.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshBuilder.BuildNavMeshData(UnityEngine.AI.NavMeshBuildSettings,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildSource&gt;,UnityEngine.Bounds,UnityEngine.Vector3,UnityEngine.Quaternion)">
<summary>
<para>Builds a NavMesh data object from the provided input sources.</para>
</summary>
<param name="buildSettings">Settings for the bake process, see NavMeshBuildSettings.</param>
<param name="sources">List of input geometry used for baking, they describe the surfaces to walk on or obstacles to avoid.</param>
<param name="localBounds">Bounding box relative to position and rotation which describes the volume where the NavMesh should be built. Empty bounds is treated as no bounds, i.e. the NavMesh will cover all the inputs.</param>
<param name="position">Center of the NavMeshData. This specifies the origin for the NavMesh tiles (See Also: NavMeshBuildSettings.tileSize).</param>
<param name="rotation">Orientation of the NavMeshData, you can use this to generate NavMesh with an arbitrary up-vector – e.g. for walkable vertical surfaces.</param>
<returns>
<para>Returns a newly built NavMeshData, or null if the NavMeshData was empty or an error occurred.
The newly built NavMeshData, or null if the NavMeshData was empty or an error occurred.</para>
</returns>
</member>
<member name="M:UnityEditor.AI.NavMeshBuilder.Cancel(UnityEngine.AI.NavMeshData)">
<summary>
<para>Cancels an asynchronous update of the specified NavMesh data. See Also: UpdateNavMeshDataAsync.</para>
</summary>
<param name="data">The data associated with asynchronous updating.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshBuilder.CollectSources(UnityEngine.Bounds,System.Int32,UnityEngine.AI.NavMeshCollectGeometry,System.Int32,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildMarkup&gt;,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildSource&gt;)">
<summary>
<para>Collects renderers or physics colliders, and terrains within a volume.</para>
</summary>
<param name="includedWorldBounds">The queried objects must overlap these bounds to be included in the results.</param>
<param name="includedLayerMask">Specifies which layers are included in the query.</param>
<param name="geometry">Which type of geometry to collect - e.g. physics colliders.</param>
<param name="defaultArea">Area type to assign to results, unless modified by NavMeshMarkup.</param>
<param name="markups">List of markups which allows finer control over how objects are collected.</param>
<param name="results">List where results are stored, the list is cleared at the beginning of the call.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshBuilder.CollectSources(UnityEngine.Transform,System.Int32,UnityEngine.AI.NavMeshCollectGeometry,System.Int32,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildMarkup&gt;,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildSource&gt;)">
<summary>
<para>Collects renderers or physics colliders, and terrains within a transform hierarchy.</para>
</summary>
<param name="root">If not null, consider only root and its children in the query; if null, includes everything loaded.</param>
<param name="includedLayerMask">Specifies which layers are included in the query.</param>
<param name="geometry">Which type of geometry to collect - e.g. physics colliders.</param>
<param name="defaultArea">Area type to assign to results, unless modified by NavMeshMarkup.</param>
<param name="markups">List of markups which allows finer control over how objects are collected.</param>
<param name="results">List where results are stored, the list is cleared at the beginning of the call.</param>
</member>
<member name="M:UnityEngine.AI.NavMeshBuilder.UpdateNavMeshData(UnityEngine.AI.NavMeshData,UnityEngine.AI.NavMeshBuildSettings,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildSource&gt;,UnityEngine.Bounds)">
<summary>
<para>Incrementally updates the NavMeshData based on the sources.</para>
</summary>
<param name="data">The NavMeshData to update.</param>
<param name="buildSettings">The build settings which is used to update the NavMeshData. The build settings is also hashed along with the data, so changing settings will cause a full rebuild.</param>
<param name="sources">List of input geometry used for baking, they describe the surfaces to walk on or obstacles to avoid.</param>
<param name="localBounds">Bounding box relative to position and rotation which describes the volume where the NavMesh should be built. Empty bounds is treated as no-bounds, that is, the NavMesh will cover all the inputs.</param>
<returns>
<para>Returns true if the update was successful.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshBuilder.UpdateNavMeshDataAsync(UnityEngine.AI.NavMeshData,UnityEngine.AI.NavMeshBuildSettings,System.Collections.Generic.List`1&lt;UnityEngine.AI.NavMeshBuildSource&gt;,UnityEngine.Bounds)">
<summary>
<para>Asynchronously and incrementally updates the NavMeshData based on the sources.</para>
</summary>
<param name="data">The NavMeshData to update.</param>
<param name="buildSettings">The build settings which is used to update the NavMeshData. The build settings is also hashed along with the data, so changing settings will likely to cause full rebuild.</param>
<param name="sources">List of input geometry used for baking, they describe the surfaces to walk on or obstacles to avoid.</param>
<param name="localBounds">Bounding box relative to position and rotation which describes to volume where the NavMesh should be built. Empty bounds is treated as no-bounds, that is, the NavMesh will cover all the inputs.</param>
<returns>
<para>Can be used to check the progress of the update.</para>
</returns>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildMarkup">
<summary>
<para>The NavMesh build markup allows you to control how certain objects are treated during the NavMesh build process, specifically when collecting sources for building.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildMarkup.area">
<summary>
<para>The area type to use when override area is enabled.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildMarkup.ignoreFromBuild">
<summary>
<para>Use this to specify whether the GameObject and its children should be ignored.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildMarkup.overrideArea">
<summary>
<para>Use this to specify whether the area type of the GameObject and its children should be overridden by the area type specified in this struct.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildMarkup.root">
<summary>
<para>Use this to specify which GameObject (including the GameObject’s children) the markup should be applied to.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildSettings">
<summary>
<para>The NavMeshBuildSettings struct allows you to specify a collection of settings which describe the dimensions and limitations of a particular agent type.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.agentClimb">
<summary>
<para>The maximum vertical step size an agent can take.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.agentHeight">
<summary>
<para>The height of the agent for baking in world units.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.agentRadius">
<summary>
<para>The radius of the agent for baking in world units.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.agentSlope">
<summary>
<para>The maximum slope angle which is walkable (angle in degrees).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.agentTypeID">
<summary>
<para>The agent type ID the NavMesh will be baked for.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.debug">
<summary>
<para>Options for collecting debug data during the build process.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.minRegionArea">
<summary>
<para>The approximate minimum area of individual NavMesh regions.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.overrideTileSize">
<summary>
<para>Enables overriding the default tile size. See Also: tileSize.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.overrideVoxelSize">
<summary>
<para>Enables overriding the default voxel size. See Also: voxelSize.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.tileSize">
<summary>
<para>Sets the tile size in voxel units.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSettings.voxelSize">
<summary>
<para>Sets the voxel size in world length units.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshBuildSettings.ValidationReport(UnityEngine.Bounds)">
<summary>
<para>Validates the properties of NavMeshBuildSettings.</para>
</summary>
<param name="buildBounds">Describes the volume to build NavMesh for.</param>
<returns>
<para>The list of violated constraints.</para>
</returns>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildSource">
<summary>
<para>The input to the NavMesh builder is a list of NavMesh build sources.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.area">
<summary>
<para>Describes the area type of the NavMesh surface for this object.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.component">
<summary>
<para>Points to the owning component - if available, otherwise null.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.shape">
<summary>
<para>The type of the shape this source describes. See Also: NavMeshBuildSourceShape.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.size">
<summary>
<para>Describes the dimensions of the shape.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.sourceObject">
<summary>
<para>Describes the object referenced for Mesh and Terrain types of input sources.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshBuildSource.transform">
<summary>
<para>Describes the local to world transformation matrix of the build source. That is, position and orientation and scale of the shape.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshBuildSourceShape">
<summary>
<para>Used with NavMeshBuildSource to define the shape for building NavMesh.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.Box">
<summary>
<para>Describes a box primitive for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.Capsule">
<summary>
<para>Describes a capsule primitive for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.Mesh">
<summary>
<para>Describes a Mesh source for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.ModifierBox">
<summary>
<para>Describes a ModifierBox source for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.Sphere">
<summary>
<para>Describes a sphere primitive for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshBuildSourceShape.Terrain">
<summary>
<para>Describes a TerrainData source for use with NavMeshBuildSource.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshCollectGeometry">
<summary>
<para>Used for specifying the type of geometry to collect. Used with NavMeshBuilder.CollectSources.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshCollectGeometry.PhysicsColliders">
<summary>
<para>Collect geometry from the 3D physics collision representation.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshCollectGeometry.RenderMeshes">
<summary>
<para>Collect meshes form the rendered geometry.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshData">
<summary>
<para>Contains and represents NavMesh data.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshData.position">
<summary>
<para>Gets or sets the world space position of the NavMesh data.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshData.rotation">
<summary>
<para>Gets or sets the orientation of the NavMesh data.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshData.sourceBounds">
<summary>
<para>Returns the bounding volume of the input geometry used to build this NavMesh (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshData.#ctor">
<summary>
<para>Constructs a new object for representing a NavMesh for the default agent type.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshData.#ctor(System.Int32)">
<summary>
<para>Constructs a new object representing a NavMesh for the specified agent type.</para>
</summary>
<param name="agentTypeID">The agent type ID to create a NavMesh for.</param>
</member>
<member name="T:UnityEngine.AI.NavMeshDataInstance">
<summary>
<para>The instance is returned when adding NavMesh data.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshDataInstance.owner">
<summary>
<para>Get or set the owning Object.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshDataInstance.valid">
<summary>
<para>True if the NavMesh data is added to the navigation system - otherwise false (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshDataInstance.Remove">
<summary>
<para>Removes this instance from the NavMesh system.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshHit">
<summary>
<para>Result information for NavMesh queries.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshHit.distance">
<summary>
<para>Distance to the point of hit.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshHit.hit">
<summary>
<para>Flag set when hit.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshHit.mask">
<summary>
<para>Mask specifying NavMesh area at point of hit.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshHit.normal">
<summary>
<para>Normal at the point of hit.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshHit.position">
<summary>
<para>Position of hit.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshLinkData">
<summary>
<para>Used for runtime manipulation of links connecting polygons of the NavMesh.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.agentTypeID">
<summary>
<para>Specifies which agent type this link is available for.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.area">
<summary>
<para>Area type of the link.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.bidirectional">
<summary>
<para>If true, the link can be traversed in both directions, otherwise only from start to end position.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.costModifier">
<summary>
<para>If positive, overrides the pathfinder cost to traverse the link.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.endPosition">
<summary>
<para>End position of the link.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.startPosition">
<summary>
<para>Start position of the link.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkData.width">
<summary>
<para>If positive, the link will be rectangle aligned along the line from start to end.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshLinkInstance">
<summary>
<para>An instance representing a link available for pathfinding.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkInstance.owner">
<summary>
<para>Get or set the owning Object.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshLinkInstance.valid">
<summary>
<para>True if the NavMesh link is added to the navigation system - otherwise false (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshLinkInstance.Remove">
<summary>
<para>Removes this instance from the game.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshObstacle">
<summary>
<para>An obstacle for NavMeshAgents to avoid.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.carveOnlyStationary">
<summary>
<para>Should this obstacle be carved when it is constantly moving?</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.carving">
<summary>
<para>Should this obstacle make a cut-out in the navmesh.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.carvingMoveThreshold">
<summary>
<para>Threshold distance for updating a moving carved hole (when carving is enabled).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.carvingTimeToStationary">
<summary>
<para>Time to wait until obstacle is treated as stationary (when carving and carveOnlyStationary are enabled).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.center">
<summary>
<para>The center of the obstacle, measured in the object's local space.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.height">
<summary>
<para>Height of the obstacle's cylinder shape.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.radius">
<summary>
<para>Radius of the obstacle's capsule shape.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.shape">
<summary>
<para>The shape of the obstacle.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.size">
<summary>
<para>The size of the obstacle, measured in the object's local space.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshObstacle.velocity">
<summary>
<para>Velocity at which the obstacle moves around the NavMesh.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshObstacleShape">
<summary>
<para>Shape of the obstacle.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshObstacleShape.Box">
<summary>
<para>Box shaped obstacle.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshObstacleShape.Capsule">
<summary>
<para>Capsule shaped obstacle.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshPath">
<summary>
<para>A path as calculated by the navigation system.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshPath.corners">
<summary>
<para>Corner points of the path. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshPath.status">
<summary>
<para>Status of the path. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshPath.ClearCorners">
<summary>
<para>Erase all corner points from path.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshPath.#ctor">
<summary>
<para>NavMeshPath constructor.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshPath.GetCornersNonAlloc(UnityEngine.Vector3[])">
<summary>
<para>Calculate the corners for the path.</para>
</summary>
<param name="results">Array to store path corners.</param>
<returns>
<para>The number of corners along the path - including start and end points.</para>
</returns>
</member>
<member name="T:UnityEngine.AI.NavMeshPathStatus">
<summary>
<para>Status of path.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshPathStatus.PathComplete">
<summary>
<para>The path terminates at the destination.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshPathStatus.PathInvalid">
<summary>
<para>The path is invalid.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshPathStatus.PathPartial">
<summary>
<para>The path cannot reach the destination.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.NavMeshQueryFilter">
<summary>
<para>Specifies which agent type and areas to consider when searching the NavMesh.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshQueryFilter.agentTypeID">
<summary>
<para>The agent type ID, specifying which navigation meshes to consider for the query functions.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshQueryFilter.areaMask">
<summary>
<para>A bitmask representing the traversable area types.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.NavMeshQueryFilter.GetAreaCost(System.Int32)">
<summary>
<para>Returns the area cost multiplier for the given area type for this filter.</para>
</summary>
<param name="areaIndex">Index to retreive the cost for.</param>
<returns>
<para>The cost multiplier for the supplied area index.</para>
</returns>
</member>
<member name="M:UnityEngine.AI.NavMeshQueryFilter.SetAreaCost(System.Int32,System.Single)">
<summary>
<para>Sets the pathfinding cost multiplier for this filter for a given area type.</para>
</summary>
<param name="areaIndex">The area index to set the cost for.</param>
<param name="cost">The cost for the supplied area index.</param>
</member>
<member name="T:UnityEngine.AI.NavMeshTriangulation">
<summary>
<para>Contains data describing a triangulation of a navmesh.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshTriangulation.areas">
<summary>
<para>NavMesh area indices for the navmesh triangulation.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshTriangulation.indices">
<summary>
<para>Triangle indices for the navmesh triangulation.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.NavMeshTriangulation.layers">
<summary>
<para>NavMeshLayer values for the navmesh triangulation.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.NavMeshTriangulation.vertices">
<summary>
<para>Vertices for the navmesh triangulation.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.ObstacleAvoidanceType">
<summary>
<para>Level of obstacle avoidance.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.ObstacleAvoidanceType.GoodQualityObstacleAvoidance">
<summary>
<para>Good avoidance. High performance impact.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.ObstacleAvoidanceType.HighQualityObstacleAvoidance">
<summary>
<para>Enable highest precision. Highest performance impact.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.ObstacleAvoidanceType.LowQualityObstacleAvoidance">
<summary>
<para>Enable simple avoidance. Low performance impact.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.ObstacleAvoidanceType.MedQualityObstacleAvoidance">
<summary>
<para>Medium avoidance. Medium performance impact.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.ObstacleAvoidanceType.NoObstacleAvoidance">
<summary>
<para>Disable avoidance.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.OffMeshLink">
<summary>
<para>Link allowing movement outside the planar navigation mesh.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.activated">
<summary>
<para>Is link active.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.area">
<summary>
<para>NavMesh area index for this OffMeshLink component.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.autoUpdatePositions">
<summary>
<para>Automatically update endpoints.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.biDirectional">
<summary>
<para>Can link be traversed in both directions.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.costOverride">
<summary>
<para>Modify pathfinding cost for the link.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.endTransform">
<summary>
<para>The transform representing link end position.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.navMeshLayer">
<summary>
<para>NavMeshLayer for this OffMeshLink component.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.occupied">
<summary>
<para>Is link occupied. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLink.startTransform">
<summary>
<para>The transform representing link start position.</para>
</summary>
</member>
<member name="M:UnityEngine.AI.OffMeshLink.UpdatePositions">
<summary>
<para>Explicitly update the link endpoints.</para>
</summary>
</member>
<member name="T:UnityEngine.AI.OffMeshLinkData">
<summary>
<para>State of OffMeshLink.</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.activated">
<summary>
<para>Is link active (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.endPos">
<summary>
<para>Link end world position (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.linkType">
<summary>
<para>Link type specifier (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.offMeshLink">
<summary>
<para>The OffMeshLink if the link type is a manually placed Offmeshlink (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.startPos">
<summary>
<para>Link start world position (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.AI.OffMeshLinkData.valid">
<summary>
<para>Is link valid (Read Only).</para>
</summary>
</member>
<member name="T:UnityEngine.AI.OffMeshLinkType">
<summary>
<para>Link type specifier.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.OffMeshLinkType.LinkTypeDropDown">
<summary>
<para>Vertical drop.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.OffMeshLinkType.LinkTypeJumpAcross">
<summary>
<para>Horizontal jump.</para>
</summary>
</member>
<member name="F:UnityEngine.AI.OffMeshLinkType.LinkTypeManual">
<summary>
<para>Manually specified type of link.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ARModule</name>
</assembly>
<member name="T:UnityEngine.XR.ARBackgroundRenderer">
<summary>
<para>Class used to override a camera's default background rendering path to instead render a given Texture and/or Material. This will typically be used with images from the color camera for rendering the AR background on mobile devices.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.ARBackgroundRenderer.backgroundMaterial">
<summary>
<para>The Material used for AR rendering.</para>
</summary>
</member>
<member name="?:UnityEngine.XR.ARBackgroundRenderer.backgroundRendererChanged(System.Action)">
<summary>
<para>Called when any of the public properties of this class have been changed.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.XR.ARBackgroundRenderer.backgroundTexture">
<summary>
<para>An optional Texture used for AR rendering. If this property is not set then the texture set in XR.ARBackgroundRenderer._backgroundMaterial as "_MainTex" is used.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.ARBackgroundRenderer.camera">
<summary>
<para>An optional Camera whose background rendering will be overridden by this class. If this property is not set then the main Camera in the scene is used.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.ARBackgroundRenderer.mode">
<summary>
<para>When set to XR.ARRenderMode.StandardBackground (default) the camera is not overridden to display the background image. Setting this property to XR.ARRenderMode.MaterialAsBackground will render the texture specified by XR.ARBackgroundRenderer._backgroundMaterial and or XR.ARBackgroundRenderer._backgroundTexture as the background.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.ARBackgroundRenderer.DisableARBackgroundRendering">
<summary>
<para>Disables AR background rendering. This method is called internally but can be overridden by users who wish to subclass XR.ARBackgroundRenderer to customize handling of AR background rendering.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.ARRenderMode">
<summary>
<para>Enumeration describing the AR rendering mode used with XR.ARBackgroundRenderer.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.ARRenderMode.MaterialAsBackground">
<summary>
<para>The material associated with XR.ARBackgroundRenderer is being rendered as the background.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.ARRenderMode.StandardBackground">
<summary>
<para>The standard background is rendered. (Skybox, Solid Color, etc.)</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.AccessibilityModule</name>
</assembly>
<member name="T:UnityEngine.Accessibility.VisionUtility">
<summary>
<para>A class containing methods to assist with accessibility for users with different vision capabilities.</para>
</summary>
</member>
<member name="M:UnityEngine.Accessibility.VisionUtility.GetColorBlindSafePalette(UnityEngine.Color[],System.Single,System.Single)">
<summary>
<para>Gets a palette of colors that should be distinguishable for normal vision, deuteranopia, protanopia, and tritanopia.</para>
</summary>
<param name="palette">An array of colors to populate with a palette.</param>
<param name="minimumLuminance">Minimum allowable perceived luminance from 0 to 1. A value of 0.2 or greater is recommended for dark backgrounds.</param>
<param name="maximumLuminance">Maximum allowable perceived luminance from 0 to 1. A value of 0.8 or less is recommended for light backgrounds.</param>
<returns>
<para>The number of unambiguous colors in the palette.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.AssetBundleModule</name>
</assembly>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.AudioModule</name>
</assembly>
<member name="T:UnityEngine.Audio.AudioClipPlayable">
<summary>
<para>An implementation of IPlayable that controls an AudioClip.</para>
</summary>
</member>
<member name="M:UnityEngine.Audio.AudioClipPlayable.Create(UnityEngine.Playables.PlayableGraph,UnityEngine.AudioClip,System.Boolean)">
<summary>
<para>Creates an AudioClipPlayable in the PlayableGraph.</para>
</summary>
<param name="graph">The PlayableGraph that will contain the new AnimationLayerMixerPlayable.</param>
<param name="clip">The AudioClip that will be added in the PlayableGraph.</param>
<param name="looping">True if the clip should loop, false otherwise.</param>
<returns>
<para>A AudioClipPlayable linked to the PlayableGraph.</para>
</returns>
</member>
<member name="T:UnityEngine.Audio.AudioMixer">
<summary>
<para>AudioMixer asset.</para>
</summary>
</member>
<member name="P:UnityEngine.Audio.AudioMixer.outputAudioMixerGroup">
<summary>
<para>Routing target.</para>
</summary>
</member>
<member name="P:UnityEngine.Audio.AudioMixer.updateMode">
<summary>
<para>How time should progress for this AudioMixer. Used during Snapshot transitions.</para>
</summary>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.ClearFloat(System.String)">
<summary>
<para>Resets an exposed parameter to its initial value.</para>
</summary>
<param name="name">Exposed parameter.</param>
<returns>
<para>Returns false if the parameter was not found or could not be set.</para>
</returns>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.FindMatchingGroups(System.String)">
<summary>
<para>Connected groups in the mixer form a path from the mixer's master group to the leaves. This path has the format "Master GroupChild of Master GroupGrandchild of Master Group", so to find the grandchild group in this example, a valid search string would be for instance "randchi" which would return exactly one group while "hild" or "oup/" would return 2 different groups.</para>
</summary>
<param name="subPath">Sub-string of the paths to be matched.</param>
<returns>
<para>Groups in the mixer whose paths match the specified search path.</para>
</returns>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.FindSnapshot(System.String)">
<summary>
<para>The name must be an exact match.</para>
</summary>
<param name="name">Name of snapshot object to be returned.</param>
<returns>
<para>The snapshot identified by the name.</para>
</returns>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.GetFloat(System.String,System.Single&amp;)">
<summary>
<para>Returns the value of the exposed parameter specified. If the parameter doesn't exist the function returns false. Prior to calling SetFloat and after ClearFloat has been called on this parameter the value returned will be that of the current snapshot or snapshot transition.</para>
</summary>
<param name="name">Name of exposed parameter.</param>
<param name="value">Return value of exposed parameter.</param>
<returns>
<para>Returns false if the exposed parameter specified doesn't exist.</para>
</returns>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.SetFloat(System.String,System.Single)">
<summary>
<para>Sets the value of the exposed parameter specified. When a parameter is exposed, it is not controlled by mixer snapshots and can therefore only be changed via this function.</para>
</summary>
<param name="name">Name of exposed parameter.</param>
<param name="value">New value of exposed parameter.</param>
<returns>
<para>Returns false if the exposed parameter was not found or snapshots are currently being edited.</para>
</returns>
</member>
<member name="M:UnityEngine.Audio.AudioMixer.TransitionToSnapshots(UnityEngine.Audio.AudioMixerSnapshot[],System.Single[],System.Single)">
<summary>
<para>Transitions to a weighted mixture of the snapshots specified. This can be used for games that specify the game state as a continuum between states or for interpolating snapshots from a triangulated map location.</para>
</summary>
<param name="snapshots">The set of snapshots to be mixed.</param>
<param name="weights">The mix weights for the snapshots specified.</param>
<param name="timeToReach">Relative time after which the mixture should be reached from any current state.</param>
</member>
<member name="T:UnityEngine.Audio.AudioMixerGroup">
<summary>
<para>Object representing a group in the mixer.</para>
</summary>
</member>
<member name="T:UnityEngine.Audio.AudioMixerPlayable">
<summary>
<para>An implementation of IPlayable that controls an audio mixer.</para>
</summary>
</member>
<member name="T:UnityEngine.Audio.AudioMixerSnapshot">
<summary>
<para>Object representing a snapshot in the mixer.</para>
</summary>
</member>
<member name="M:UnityEngine.Audio.AudioMixerSnapshot.TransitionTo(System.Single)">
<summary>
<para>Performs an interpolated transition towards this snapshot over the time interval specified.</para>
</summary>
<param name="timeToReach">Relative time after which this snapshot should be reached from any current state.</param>
</member>
<member name="T:UnityEngine.Audio.AudioMixerUpdateMode">
<summary>
<para>The mode in which an AudioMixer should update its time.</para>
</summary>
</member>
<member name="F:UnityEngine.Audio.AudioMixerUpdateMode.Normal">
<summary>
<para>Update the AudioMixer with scaled game time.</para>
</summary>
</member>
<member name="F:UnityEngine.Audio.AudioMixerUpdateMode.UnscaledTime">
<summary>
<para>Update the AudioMixer with unscaled realtime.</para>
</summary>
</member>
<member name="T:UnityEngine.Audio.AudioPlayableOutput">
<summary>
<para>A IPlayableOutput implementation that will be used to play audio.</para>
</summary>
</member>
<member name="M:UnityEngine.Audio.AudioPlayableOutput.Create(UnityEngine.Playables.PlayableGraph,System.String,UnityEngine.AudioSource)">
<summary>
<para>Creates an AudioPlayableOutput in the PlayableGraph.</para>
</summary>
<param name="graph">The PlayableGraph that will contain the AnimationPlayableOutput.</param>
<param name="name">The name of the output.</param>
<param name="target">The AudioSource that will play the AudioPlayableOutput source Playable.</param>
<returns>
<para>A new AudioPlayableOutput attached to the PlayableGraph.</para>
</returns>
</member>
<member name="P:UnityEngine.Audio.AudioPlayableOutput.Null">
<summary>
<para>Returns an invalid AudioPlayableOutput.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioChorusFilter">
<summary>
<para>The Audio Chorus Filter takes an Audio Clip and processes it creating a chorus effect.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.delay">
<summary>
<para>Chorus delay in ms. 0.1 to 100.0. Default = 40.0 ms.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.depth">
<summary>
<para>Chorus modulation depth. 0.0 to 1.0. Default = 0.03.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.dryMix">
<summary>
<para>Volume of original signal to pass to output. 0.0 to 1.0. Default = 0.5.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.feedback">
<summary>
<para>Chorus feedback. Controls how much of the wet signal gets fed back into the chorus buffer. 0.0 to 1.0. Default = 0.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.rate">
<summary>
<para>Chorus modulation rate in hz. 0.0 to 20.0. Default = 0.8 hz.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.wetMix1">
<summary>
<para>Volume of 1st chorus tap. 0.0 to 1.0. Default = 0.5.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.wetMix2">
<summary>
<para>Volume of 2nd chorus tap. This tap is 90 degrees out of phase of the first tap. 0.0 to 1.0. Default = 0.5.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioChorusFilter.wetMix3">
<summary>
<para>Volume of 3rd chorus tap. This tap is 90 degrees out of phase of the second tap. 0.0 to 1.0. Default = 0.5.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioClip">
<summary>
<para>A container for audio data.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.ambisonic">
<summary>
<para>Returns true if this audio clip is ambisonic (read-only).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.channels">
<summary>
<para>The number of channels in the audio clip. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.frequency">
<summary>
<para>The sample frequency of the clip in Hertz. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.isReadyToPlay">
<summary>
<para>Returns true if the AudioClip is ready to play (read-only).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.length">
<summary>
<para>The length of the audio clip in seconds. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.loadInBackground">
<summary>
<para>Corresponding to the "Load In Background" flag in the inspector, when this flag is set, the loading will happen delayed without blocking the main thread.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.loadState">
<summary>
<para>Returns the current load state of the audio data associated with an AudioClip.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.loadType">
<summary>
<para>The load type of the clip (read-only).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.preloadAudioData">
<summary>
<para>Preloads audio data of the clip when the clip asset is loaded. When this flag is off, scripts have to call AudioClip.LoadAudioData() to load the data before the clip can be played. Properties like length, channels and format are available before the audio data has been loaded.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioClip.samples">
<summary>
<para>The length of the audio clip in samples. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean,UnityEngine.AudioClip/PCMReaderCallback)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean,UnityEngine.AudioClip/PCMReaderCallback,UnityEngine.AudioClip/PCMSetPositionCallback)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean,System.Boolean)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean,System.Boolean,UnityEngine.AudioClip/PCMReaderCallback)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.Create(System.String,System.Int32,System.Int32,System.Int32,System.Boolean,System.Boolean,UnityEngine.AudioClip/PCMReaderCallback,UnityEngine.AudioClip/PCMSetPositionCallback)">
<summary>
<para>Creates a user AudioClip with a name and with the given length in samples, channels and frequency.</para>
</summary>
<param name="name">Name of clip.</param>
<param name="lengthSamples">Number of sample frames.</param>
<param name="channels">Number of channels per frame.</param>
<param name="frequency">Sample frequency of clip.</param>
<param name="_3D">Audio clip is played back in 3D.</param>
<param name="stream">True if clip is streamed, that is if the pcmreadercallback generates data on the fly.</param>
<param name="pcmreadercallback">This callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.</param>
<param name="pcmsetpositioncallback">This callback is invoked whenever the clip loops or changes playback position.</param>
<returns>
<para>A reference to the created AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioClip.GetData(System.Single[],System.Int32)">
<summary>
<para>Fills an array with sample data from the clip.</para>
</summary>
<param name="data"></param>
<param name="offsetSamples"></param>
</member>
<member name="M:UnityEngine.AudioClip.LoadAudioData">
<summary>
<para>Loads the audio data of a clip. Clips that have "Preload Audio Data" set will load the audio data automatically.</para>
</summary>
<returns>
<para>Returns true if loading succeeded.</para>
</returns>
</member>
<member name="T:UnityEngine.AudioClip.PCMReaderCallback">
<summary>
<para>Delegate called each time AudioClip reads data.</para>
</summary>
<param name="data">Array of floats containing data read from the clip.</param>
</member>
<member name="T:UnityEngine.AudioClip.PCMSetPositionCallback">
<summary>
<para>Delegate called each time AudioClip changes read position.</para>
</summary>
<param name="position">New position in the audio clip.</param>
</member>
<member name="M:UnityEngine.AudioClip.SetData(System.Single[],System.Int32)">
<summary>
<para>Set sample data in a clip.</para>
</summary>
<param name="data"></param>
<param name="offsetSamples"></param>
</member>
<member name="M:UnityEngine.AudioClip.UnloadAudioData">
<summary>
<para>Unloads the audio data associated with the clip. This works only for AudioClips that are based on actual sound file assets.</para>
</summary>
<returns>
<para>Returns false if unloading failed.</para>
</returns>
</member>
<member name="T:UnityEngine.AudioClipLoadType">
<summary>
<para>Determines how the audio clip is loaded in.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioClipLoadType.CompressedInMemory">
<summary>
<para>The audio data of the clip will be kept in memory in compressed form.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioClipLoadType.DecompressOnLoad">
<summary>
<para>The audio data is decompressed when the audio clip is loaded.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioClipLoadType.Streaming">
<summary>
<para>Streams audio data from disk.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioCompressionFormat">
<summary>
<para>An enum containing different compression types.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.AAC">
<summary>
<para>AAC Audio Compression.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.ADPCM">
<summary>
<para>Adaptive differential pulse-code modulation.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.ATRAC9">
<summary>
<para>Sony proprietary hardware format.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.GCADPCM">
<summary>
<para>Nintendo ADPCM audio compression format.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.HEVAG">
<summary>
<para>Sony proprietory hardware codec.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.MP3">
<summary>
<para>MPEG Audio Layer III.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.PCM">
<summary>
<para>Uncompressed pulse-code modulation.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.VAG">
<summary>
<para>Sony proprietary hardware format.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.Vorbis">
<summary>
<para>Vorbis compression format.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioCompressionFormat.XMA">
<summary>
<para>Xbox One proprietary hardware format.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioConfiguration">
<summary>
<para>Specifies the current properties or desired properties to be set for the audio system.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioConfiguration.dspBufferSize">
<summary>
<para>The length of the DSP buffer in samples determining the latency of sounds by the audio output device.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioConfiguration.numRealVoices">
<summary>
<para>The current maximum number of simultaneously audible sounds in the game.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioConfiguration.numVirtualVoices">
<summary>
<para>The maximum number of managed sounds in the game. Beyond this limit sounds will simply stop playing.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioConfiguration.sampleRate">
<summary>
<para>The current sample rate of the audio output device used.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioConfiguration.speakerMode">
<summary>
<para>The current speaker mode used by the audio output device.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioDataLoadState">
<summary>
<para>Value describing the current load state of the audio data associated with an AudioClip.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioDataLoadState.Failed">
<summary>
<para>Value returned by AudioClip.loadState for an AudioClip that has failed loading its audio data.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioDataLoadState.Loaded">
<summary>
<para>Value returned by AudioClip.loadState for an AudioClip that has succeeded loading its audio data.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioDataLoadState.Loading">
<summary>
<para>Value returned by AudioClip.loadState for an AudioClip that is currently loading audio data.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioDataLoadState.Unloaded">
<summary>
<para>Value returned by AudioClip.loadState for an AudioClip that has no audio data loaded and where loading has not been initiated yet.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioDistortionFilter">
<summary>
<para>The Audio Distortion Filter distorts the sound from an AudioSource or sounds reaching the AudioListener.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioDistortionFilter.distortionLevel">
<summary>
<para>Distortion value. 0.0 to 1.0. Default = 0.5.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioEchoFilter">
<summary>
<para>The Audio Echo Filter repeats a sound after a given Delay, attenuating the repetitions based on the Decay Ratio.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioEchoFilter.decayRatio">
<summary>
<para>Echo decay per delay. 0 to 1. 1.0 = No decay, 0.0 = total decay (i.e. simple 1 line delay). Default = 0.5.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioEchoFilter.delay">
<summary>
<para>Echo delay in ms. 10 to 5000. Default = 500.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioEchoFilter.dryMix">
<summary>
<para>Volume of original signal to pass to output. 0.0 to 1.0. Default = 1.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioEchoFilter.wetMix">
<summary>
<para>Volume of echo signal to pass to output. 0.0 to 1.0. Default = 1.0.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioHighPassFilter">
<summary>
<para>The Audio High Pass Filter passes high frequencies of an AudioSource, and cuts off signals with frequencies lower than the Cutoff Frequency.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioHighPassFilter.cutoffFrequency">
<summary>
<para>Highpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioHighPassFilter.highpassResonanceQ">
<summary>
<para>Determines how much the filter's self-resonance isdampened.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioListener">
<summary>
<para>Representation of a listener in 3D space.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioListener.pause">
<summary>
<para>The paused state of the audio system.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioListener.velocityUpdateMode">
<summary>
<para>This lets you set whether the Audio Listener should be updated in the fixed or dynamic update.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioListener.volume">
<summary>
<para>Controls the game sound volume (0.0 to 1.0).</para>
</summary>
</member>
<member name="M:UnityEngine.AudioListener.GetOutputData(System.Single[],System.Int32)">
<summary>
<para>Provides a block of the listener (master)'s output data.</para>
</summary>
<param name="samples">The array to populate with audio samples. Its length must be a power of 2.</param>
<param name="channel">The channel to sample from.</param>
</member>
<member name="M:UnityEngine.AudioListener.GetOutputData(System.Int32,System.Int32)">
<summary>
<para>Deprecated Version. Returns a block of the listener (master)'s output data.</para>
</summary>
<param name="numSamples"></param>
<param name="channel"></param>
</member>
<member name="M:UnityEngine.AudioListener.GetSpectrumData(System.Single[],System.Int32,UnityEngine.FFTWindow)">
<summary>
<para>Provides a block of the listener (master)'s spectrum data.</para>
</summary>
<param name="samples">The array to populate with audio samples. Its length must be a power of 2.</param>
<param name="channel">The channel to sample from.</param>
<param name="window">The FFTWindow type to use when sampling.</param>
</member>
<member name="M:UnityEngine.AudioListener.GetSpectrumData(System.Int32,System.Int32,UnityEngine.FFTWindow)">
<summary>
<para>Deprecated Version. Returns a block of the listener (master)'s spectrum data.</para>
</summary>
<param name="numSamples">Number of values (the length of the samples array). Must be a power of 2. Min = 64. Max = 8192.</param>
<param name="channel">The channel to sample from.</param>
<param name="window">The FFTWindow type to use when sampling.</param>
</member>
<member name="T:UnityEngine.AudioLowPassFilter">
<summary>
<para>The Audio Low Pass Filter passes low frequencies of an AudioSource or all sounds reaching an AudioListener, while removing frequencies higher than the Cutoff Frequency.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioLowPassFilter.customCutoffCurve">
<summary>
<para>Returns or sets the current custom frequency cutoff curve.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioLowPassFilter.cutoffFrequency">
<summary>
<para>Lowpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioLowPassFilter.lowpassResonanceQ">
<summary>
<para>Determines how much the filter's self-resonance is dampened.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioRenderer">
<summary>
<para>Allow recording the main output of the game or specific groups in the AudioMixer.</para>
</summary>
</member>
<member name="M:UnityEngine.AudioRenderer.GetSampleCountForCaptureFrame">
<summary>
<para>Returns the number of samples available since the last time AudioRenderer.Render was called. This is dependent on the frame capture rate.</para>
</summary>
<returns>
<para>Number of samples available since last recorded frame.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioRenderer.Render(UnityEngine.Collections.NativeArray`1&lt;System.Single&gt;)">
<summary>
<para>Performs the recording of the main output as well as any optional mixer groups that have been registered via AudioRenderer.AddMixerGroupSink.</para>
</summary>
<param name="buffer">The buffer to write the sample data to.</param>
<returns>
<para>True if the recording succeeded.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioRenderer.Start">
<summary>
<para>Enters audio recording mode. After this Unity will output silence until AudioRenderer.Stop is called.</para>
</summary>
<returns>
<para>True if the engine was switched into output recording mode. False if it is already recording.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioRenderer.Stop">
<summary>
<para>Exits audio recording mode. After this audio output will be audible again.</para>
</summary>
<returns>
<para>True if the engine was recording when this function was called.</para>
</returns>
</member>
<member name="T:UnityEngine.AudioReverbFilter">
<summary>
<para>The Audio Reverb Filter takes an Audio Clip and distorts it to create a custom reverb effect.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.decayHFRatio">
<summary>
<para>Decay HF Ratio : High-frequency to low-frequency decay time ratio. Ranges from 0.1 to 2.0. Default is 0.5.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.decayTime">
<summary>
<para>Reverberation decay time at low-frequencies in seconds. Ranges from 0.1 to 20.0. Default is 1.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.density">
<summary>
<para>Reverberation density (modal density) in percent. Ranges from 0.0 to 100.0. Default is 100.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.diffusion">
<summary>
<para>Reverberation diffusion (echo density) in percent. Ranges from 0.0 to 100.0. Default is 100.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.dryLevel">
<summary>
<para>Mix level of dry signal in output in mB. Ranges from -10000.0 to 0.0. Default is 0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.hfReference">
<summary>
<para>Reference high frequency in Hz. Ranges from 20.0 to 20000.0. Default is 5000.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.lfReference">
<summary>
<para>Reference low-frequency in Hz. Ranges from 20.0 to 1000.0. Default is 250.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.reflectionsDelay">
<summary>
<para>Late reverberation level relative to room effect in mB. Ranges from -10000.0 to 2000.0. Default is 0.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.reflectionsLevel">
<summary>
<para>Early reflections level relative to room effect in mB. Ranges from -10000.0 to 1000.0. Default is -10000.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.reverbDelay">
<summary>
<para>Late reverberation delay time relative to first reflection in seconds. Ranges from 0.0 to 0.1. Default is 0.04.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.reverbLevel">
<summary>
<para>Late reverberation level relative to room effect in mB. Ranges from -10000.0 to 2000.0. Default is 0.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.reverbPreset">
<summary>
<para>Set/Get reverb preset properties.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.room">
<summary>
<para>Room effect level at low frequencies in mB. Ranges from -10000.0 to 0.0. Default is 0.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.roomHF">
<summary>
<para>Room effect high-frequency level re. low frequency level in mB. Ranges from -10000.0 to 0.0. Default is 0.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbFilter.roomLF">
<summary>
<para>Room effect low-frequency level in mB. Ranges from -10000.0 to 0.0. Default is 0.0.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioReverbPreset">
<summary>
<para>Reverb presets used by the Reverb Zone class and the audio reverb filter.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Alley">
<summary>
<para>Alley preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Arena">
<summary>
<para>Arena preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Auditorium">
<summary>
<para>Auditorium preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Bathroom">
<summary>
<para>Bathroom preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.CarpetedHallway">
<summary>
<para>Carpeted hallway preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Cave">
<summary>
<para>Cave preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.City">
<summary>
<para>City preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Concerthall">
<summary>
<para>Concert hall preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Dizzy">
<summary>
<para>Dizzy preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Drugged">
<summary>
<para>Drugged preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Forest">
<summary>
<para>Forest preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Generic">
<summary>
<para>Generic preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Hallway">
<summary>
<para>Hallway preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Hangar">
<summary>
<para>Hangar preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Livingroom">
<summary>
<para>Livingroom preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Mountains">
<summary>
<para>Mountains preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Off">
<summary>
<para>No reverb preset selected.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.PaddedCell">
<summary>
<para>Padded cell preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.ParkingLot">
<summary>
<para>Parking Lot preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Plain">
<summary>
<para>Plain preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Psychotic">
<summary>
<para>Psychotic preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Quarry">
<summary>
<para>Quarry preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Room">
<summary>
<para>Room preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.SewerPipe">
<summary>
<para>Sewer pipe preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.StoneCorridor">
<summary>
<para>Stone corridor preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Stoneroom">
<summary>
<para>Stoneroom preset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.Underwater">
<summary>
<para>Underwater presset.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioReverbPreset.User">
<summary>
<para>User defined preset.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioReverbZone">
<summary>
<para>Reverb Zones are used when you want to create location based ambient effects in the scene.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.decayHFRatio">
<summary>
<para>High-frequency to mid-frequency decay time ratio.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.decayTime">
<summary>
<para>Reverberation decay time at mid frequencies.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.density">
<summary>
<para>Value that controls the modal density in the late reverberation decay.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.diffusion">
<summary>
<para>Value that controls the echo density in the late reverberation decay.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.maxDistance">
<summary>
<para>The distance from the centerpoint that the reverb will not have any effect. Default = 15.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.minDistance">
<summary>
<para>The distance from the centerpoint that the reverb will have full effect at. Default = 10.0.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.reflections">
<summary>
<para>Early reflections level relative to room effect.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.reflectionsDelay">
<summary>
<para>Initial reflection delay time.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.reverb">
<summary>
<para>Late reverberation level relative to room effect.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.reverbDelay">
<summary>
<para>Late reverberation delay time relative to initial reflection.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.reverbPreset">
<summary>
<para>Set/Get reverb preset properties.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.room">
<summary>
<para>Room effect level (at mid frequencies).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.roomHF">
<summary>
<para>Relative room effect level at high frequencies.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.roomLF">
<summary>
<para>Relative room effect level at low frequencies.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.roomRolloffFactor">
<summary>
<para>Like rolloffscale in global settings, but for reverb room size effect.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.HFReference">
<summary>
<para>Reference high frequency (hz).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioReverbZone.LFReference">
<summary>
<para>Reference low frequency (hz).</para>
</summary>
</member>
<member name="T:UnityEngine.AudioRolloffMode">
<summary>
<para>Rolloff modes that a 3D sound can have in an audio source.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioRolloffMode.Custom">
<summary>
<para>Use this when you want to use a custom rolloff.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioRolloffMode.Linear">
<summary>
<para>Use this mode when you want to lower the volume of your sound over the distance.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioRolloffMode.Logarithmic">
<summary>
<para>Use this mode when you want a real-world rolloff.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioSettings">
<summary>
<para>Controls the global audio settings from script.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSettings.driverCapabilities">
<summary>
<para>Returns the speaker mode capability of the current audio driver. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSettings.dspTime">
<summary>
<para>Returns the current time of the audio system.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSettings.outputSampleRate">
<summary>
<para>Get the mixer's current output rate.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSettings.speakerMode">
<summary>
<para>Gets the current speaker mode. Default is 2 channel stereo.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioSettings.AudioConfigurationChangeHandler">
<summary>
<para>A delegate called whenever the global audio settings are changed, either by AudioSettings.Reset or by an external device change such as the OS control panel changing the sample rate or because the default output device was changed, for example when plugging in an HDMI monitor or a USB headset.</para>
</summary>
<param name="deviceWasChanged">True if the change was caused by an device change.</param>
</member>
<member name="M:UnityEngine.AudioSettings.GetConfiguration">
<summary>
<para>Returns the current configuration of the audio device and system. The values in the struct may then be modified and reapplied via AudioSettings.Reset.</para>
</summary>
<returns>
<para>The new configuration to be applied.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSettings.GetDSPBufferSize(System.Int32&amp;,System.Int32&amp;)">
<summary>
<para>Get the mixer's buffer size in samples.</para>
</summary>
<param name="bufferLength">Is the length of each buffer in the ringbuffer.</param>
<param name="numBuffers">Is number of buffers.</param>
</member>
<member name="M:UnityEngine.AudioSettings.GetSpatializerPluginName">
<summary>
<para>Returns the name of the spatializer selected on the currently-running platform.</para>
</summary>
<returns>
<para>The spatializer plugin name.</para>
</returns>
</member>
<member name="?:UnityEngine.AudioSettings.OnAudioConfigurationChanged(UnityEngine.AudioSettings/AudioConfigurationChangeHandler)">
<summary>
<para>A delegate called whenever the global audio settings are changed, either by AudioSettings.Reset or by an external factor such as the OS control panel changing the sample rate or because the default output device was changed, for example when plugging in an HDMI monitor or a USB headset.</para>
</summary>
<param name="value">True if the change was caused by an device change.</param>
</member>
<member name="M:UnityEngine.AudioSettings.Reset(UnityEngine.AudioConfiguration)">
<summary>
<para>Performs a change of the device configuration. In response to this the AudioSettings.OnAudioConfigurationChanged delegate is invoked with the argument deviceWasChanged=false. It cannot be guaranteed that the exact settings specified can be used, but the an attempt is made to use the closest match supported by the system.</para>
</summary>
<param name="config">The new configuration to be used.</param>
<returns>
<para>True if all settings could be successfully applied.</para>
</returns>
</member>
<member name="T:UnityEngine.AudioSource">
<summary>
<para>A representation of audio sources in 3D.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.bypassEffects">
<summary>
<para>Bypass effects (Applied from filter components or global listener filters).</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.bypassListenerEffects">
<summary>
<para>When set global effects on the AudioListener will not be applied to the audio signal generated by the AudioSource. Does not apply if the AudioSource is playing into a mixer group.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.bypassReverbZones">
<summary>
<para>When set doesn't route the signal from an AudioSource into the global reverb associated with reverb zones.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.clip">
<summary>
<para>The default AudioClip to play.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.dopplerLevel">
<summary>
<para>Sets the Doppler scale for this AudioSource.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.ignoreListenerPause">
<summary>
<para>Allows AudioSource to play even though AudioListener.pause is set to true. This is useful for the menu element sounds or background music in pause menus.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.ignoreListenerVolume">
<summary>
<para>This makes the audio source not take into account the volume of the audio listener.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.isPlaying">
<summary>
<para>Is the clip playing right now (Read Only)?</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.isVirtual">
<summary>
<para>True if all sounds played by the AudioSource (main sound started by Play() or playOnAwake as well as one-shots) are culled by the audio system.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.loop">
<summary>
<para>Is the audio clip looping?</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.maxDistance">
<summary>
<para>(Logarithmic rolloff) MaxDistance is the distance a sound stops attenuating at.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.minDistance">
<summary>
<para>Within the Min distance the AudioSource will cease to grow louder in volume.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.mute">
<summary>
<para>Un- / Mutes the AudioSource. Mute sets the volume=0, Un-Mute restore the original volume.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.outputAudioMixerGroup">
<summary>
<para>The target group to which the AudioSource should route its signal.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.panStereo">
<summary>
<para>Pans a playing sound in a stereo way (left or right). This only applies to sounds that are Mono or Stereo.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.pitch">
<summary>
<para>The pitch of the audio source.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.playOnAwake">
<summary>
<para>If set to true, the audio source will automatically start playing on awake.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.priority">
<summary>
<para>Sets the priority of the AudioSource.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.reverbZoneMix">
<summary>
<para>The amount by which the signal from the AudioSource will be mixed into the global reverb associated with the Reverb Zones.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.rolloffMode">
<summary>
<para>Sets/Gets how the AudioSource attenuates over distance.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.spatialBlend">
<summary>
<para>Sets how much this AudioSource is affected by 3D spatialisation calculations (attenuation, doppler etc). 0.0 makes the sound full 2D, 1.0 makes it full 3D.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.spatialize">
<summary>
<para>Enables or disables spatialization.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.spatializePostEffects">
<summary>
<para>Determines if the spatializer effect is inserted before or after the effect filters.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.spread">
<summary>
<para>Sets the spread angle (in degrees) of a 3d stereo or multichannel sound in speaker space.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.time">
<summary>
<para>Playback position in seconds.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.timeSamples">
<summary>
<para>Playback position in PCM samples.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.velocityUpdateMode">
<summary>
<para>Whether the Audio Source should be updated in the fixed or dynamic update.</para>
</summary>
</member>
<member name="P:UnityEngine.AudioSource.volume">
<summary>
<para>The volume of the audio source (0.0 to 1.0).</para>
</summary>
</member>
<member name="M:UnityEngine.AudioSource.GetAmbisonicDecoderFloat(System.Int32,System.Single&amp;)">
<summary>
<para>Reads a user-defined parameter of a custom ambisonic decoder effect that is attached to an AudioSource.</para>
</summary>
<param name="index">Zero-based index of user-defined parameter to be read.</param>
<param name="value">Return value of the user-defined parameter that is read.</param>
<returns>
<para>True, if the parameter could be read.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSource.GetCustomCurve(UnityEngine.AudioSourceCurveType)">
<summary>
<para>Get the current custom curve for the given AudioSourceCurveType.</para>
</summary>
<param name="type">The curve type to get.</param>
<returns>
<para>The custom AnimationCurve corresponding to the given curve type.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSource.GetOutputData(System.Single[],System.Int32)">
<summary>
<para>Provides a block of the currently playing source's output data.</para>
</summary>
<param name="samples">The array to populate with audio samples. Its length must be a power of 2.</param>
<param name="channel">The channel to sample from.</param>
</member>
<member name="M:UnityEngine.AudioSource.GetOutputData(System.Int32,System.Int32)">
<summary>
<para>Deprecated Version. Returns a block of the currently playing source's output data.</para>
</summary>
<param name="numSamples"></param>
<param name="channel"></param>
</member>
<member name="M:UnityEngine.AudioSource.GetSpatializerFloat(System.Int32,System.Single&amp;)">
<summary>
<para>Reads a user-defined parameter of a custom spatializer effect that is attached to an AudioSource.</para>
</summary>
<param name="index">Zero-based index of user-defined parameter to be read.</param>
<param name="value">Return value of the user-defined parameter that is read.</param>
<returns>
<para>True, if the parameter could be read.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSource.GetSpectrumData(System.Single[],System.Int32,UnityEngine.FFTWindow)">
<summary>
<para>Provides a block of the currently playing audio source's spectrum data.</para>
</summary>
<param name="samples">The array to populate with audio samples. Its length must be a power of 2.</param>
<param name="channel">The channel to sample from.</param>
<param name="window">The FFTWindow type to use when sampling.</param>
</member>
<member name="M:UnityEngine.AudioSource.GetSpectrumData(System.Int32,System.Int32,UnityEngine.FFTWindow)">
<summary>
<para>Deprecated Version. Returns a block of the currently playing source's spectrum data.</para>
</summary>
<param name="numSamples">The number of samples to retrieve. Must be a power of 2.</param>
<param name="channel">The channel to sample from.</param>
<param name="window">The FFTWindow type to use when sampling.</param>
</member>
<member name="M:UnityEngine.AudioSource.Pause">
<summary>
<para>Pauses playing the clip.</para>
</summary>
</member>
<member name="M:UnityEngine.AudioSource.Play()">
<summary>
<para>Plays the clip with an optional certain delay.</para>
</summary>
<param name="delay">Delay in number of samples, assuming a 44100Hz sample rate (meaning that Play(44100) will delay the playing by exactly 1 sec).</param>
</member>
<member name="M:UnityEngine.AudioSource.Play(System.UInt64)">
<summary>
<para>Plays the clip with an optional certain delay.</para>
</summary>
<param name="delay">Delay in number of samples, assuming a 44100Hz sample rate (meaning that Play(44100) will delay the playing by exactly 1 sec).</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayClipAtPoint(UnityEngine.AudioClip,UnityEngine.Vector3)">
<summary>
<para>Plays an AudioClip at a given position in world space.</para>
</summary>
<param name="clip">Audio data to play.</param>
<param name="position">Position in world space from which sound originates.</param>
<param name="volume">Playback volume.</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayClipAtPoint(UnityEngine.AudioClip,UnityEngine.Vector3,System.Single)">
<summary>
<para>Plays an AudioClip at a given position in world space.</para>
</summary>
<param name="clip">Audio data to play.</param>
<param name="position">Position in world space from which sound originates.</param>
<param name="volume">Playback volume.</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayDelayed(System.Single)">
<summary>
<para>Plays the clip with a delay specified in seconds. Users are advised to use this function instead of the old Play(delay) function that took a delay specified in samples relative to a reference rate of 44.1 kHz as an argument.</para>
</summary>
<param name="delay">Delay time specified in seconds.</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayOneShot(UnityEngine.AudioClip)">
<summary>
<para>Plays an AudioClip, and scales the AudioSource volume by volumeScale.</para>
</summary>
<param name="clip">The clip being played.</param>
<param name="volumeScale">The scale of the volume (0-1).</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayOneShot(UnityEngine.AudioClip,System.Single)">
<summary>
<para>Plays an AudioClip, and scales the AudioSource volume by volumeScale.</para>
</summary>
<param name="clip">The clip being played.</param>
<param name="volumeScale">The scale of the volume (0-1).</param>
</member>
<member name="M:UnityEngine.AudioSource.PlayScheduled(System.Double)">
<summary>
<para>Plays the clip at a specific time on the absolute time-line that AudioSettings.dspTime reads from.</para>
</summary>
<param name="time">Time in seconds on the absolute time-line that AudioSettings.dspTime refers to for when the sound should start playing.</param>
</member>
<member name="M:UnityEngine.AudioSource.SetAmbisonicDecoderFloat(System.Int32,System.Single)">
<summary>
<para>Sets a user-defined parameter of a custom ambisonic decoder effect that is attached to an AudioSource.</para>
</summary>
<param name="index">Zero-based index of user-defined parameter to be set.</param>
<param name="value">New value of the user-defined parameter.</param>
<returns>
<para>True, if the parameter could be set.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSource.SetCustomCurve(UnityEngine.AudioSourceCurveType,UnityEngine.AnimationCurve)">
<summary>
<para>Set the custom curve for the given AudioSourceCurveType.</para>
</summary>
<param name="type">The curve type that should be set.</param>
<param name="curve">The curve that should be applied to the given curve type.</param>
</member>
<member name="M:UnityEngine.AudioSource.SetScheduledEndTime(System.Double)">
<summary>
<para>Changes the time at which a sound that has already been scheduled to play will end. Notice that depending on the timing not all rescheduling requests can be fulfilled.</para>
</summary>
<param name="time">Time in seconds.</param>
</member>
<member name="M:UnityEngine.AudioSource.SetScheduledStartTime(System.Double)">
<summary>
<para>Changes the time at which a sound that has already been scheduled to play will start.</para>
</summary>
<param name="time">Time in seconds.</param>
</member>
<member name="M:UnityEngine.AudioSource.SetSpatializerFloat(System.Int32,System.Single)">
<summary>
<para>Sets a user-defined parameter of a custom spatializer effect that is attached to an AudioSource.</para>
</summary>
<param name="index">Zero-based index of user-defined parameter to be set.</param>
<param name="value">New value of the user-defined parameter.</param>
<returns>
<para>True, if the parameter could be set.</para>
</returns>
</member>
<member name="M:UnityEngine.AudioSource.Stop">
<summary>
<para>Stops playing the clip.</para>
</summary>
</member>
<member name="M:UnityEngine.AudioSource.UnPause">
<summary>
<para>Unpause the paused playback of this AudioSource.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioSourceCurveType">
<summary>
<para>This defines the curve type of the different custom curves that can be queried and set within the AudioSource.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSourceCurveType.CustomRolloff">
<summary>
<para>Custom Volume Rolloff.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSourceCurveType.ReverbZoneMix">
<summary>
<para>Reverb Zone Mix.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSourceCurveType.SpatialBlend">
<summary>
<para>The Spatial Blend.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSourceCurveType.Spread">
<summary>
<para>The 3D Spread.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioSpeakerMode">
<summary>
<para>These are speaker types defined for use with AudioSettings.speakerMode.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Mode5point1">
<summary>
<para>Channel count is set to 6. 5.1 speaker setup. This includes front left, front right, center, rear left, rear right and a subwoofer.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Mode7point1">
<summary>
<para>Channel count is set to 8. 7.1 speaker setup. This includes front left, front right, center, rear left, rear right, side left, side right and a subwoofer.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Mono">
<summary>
<para>Channel count is set to 1. The speakers are monaural.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Prologic">
<summary>
<para>Channel count is set to 2. Stereo output, but data is encoded in a way that is picked up by a Prologic/Prologic2 decoder and split into a 5.1 speaker setup.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Quad">
<summary>
<para>Channel count is set to 4. 4 speaker setup. This includes front left, front right, rear left, rear right.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Raw">
<summary>
<para>Channel count is unaffected.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Stereo">
<summary>
<para>Channel count is set to 2. The speakers are stereo. This is the editor default.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioSpeakerMode.Surround">
<summary>
<para>Channel count is set to 5. 5 speaker setup. This includes front left, front right, center, rear left, rear right.</para>
</summary>
</member>
<member name="T:UnityEngine.AudioVelocityUpdateMode">
<summary>
<para>Describes when an AudioSource or AudioListener is updated.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioVelocityUpdateMode.Auto">
<summary>
<para>Updates the source or listener in the fixed update loop if it is attached to a Rigidbody, dynamic otherwise.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioVelocityUpdateMode.Dynamic">
<summary>
<para>Updates the source or listener in the dynamic update loop.</para>
</summary>
</member>
<member name="F:UnityEngine.AudioVelocityUpdateMode.Fixed">
<summary>
<para>Updates the source or listener in the fixed update loop.</para>
</summary>
</member>
<member name="T:UnityEngine.FFTWindow">
<summary>
<para>Spectrum analysis windowing types.</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.Blackman">
<summary>
<para>W[n] = 0.42 - (0.5 * COS(nN) ) + (0.08 * COS(2.0 * nN) ).</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.BlackmanHarris">
<summary>
<para>W[n] = 0.35875 - (0.48829 * COS(1.0 * nN)) + (0.14128 * COS(2.0 * nN)) - (0.01168 * COS(3.0 * n/N)).</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.Hamming">
<summary>
<para>W[n] = 0.54 - (0.46 * COS(n/N) ).</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.Hanning">
<summary>
<para>W[n] = 0.5 * (1.0 - COS(n/N) ).</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.Rectangular">
<summary>
<para>W[n] = 1.0.</para>
</summary>
</member>
<member name="F:UnityEngine.FFTWindow.Triangle">
<summary>
<para>W[n] = TRI(2n/N).</para>
</summary>
</member>
<member name="T:UnityEngine.Microphone">
<summary>
<para>Use this class to record to an AudioClip using a connected microphone.</para>
</summary>
</member>
<member name="P:UnityEngine.Microphone.devices">
<summary>
<para>A list of available microphone devices, identified by name.</para>
</summary>
</member>
<member name="M:UnityEngine.Microphone.End(System.String)">
<summary>
<para>Stops recording.</para>
</summary>
<param name="deviceName">The name of the device.</param>
</member>
<member name="M:UnityEngine.Microphone.GetDeviceCaps(System.String,System.Int32&amp;,System.Int32&amp;)">
<summary>
<para>Get the frequency capabilities of a device.</para>
</summary>
<param name="deviceName">The name of the device.</param>
<param name="minFreq">Returns the minimum sampling frequency of the device.</param>
<param name="maxFreq">Returns the maximum sampling frequency of the device.</param>
</member>
<member name="M:UnityEngine.Microphone.GetPosition(System.String)">
<summary>
<para>Get the position in samples of the recording.</para>
</summary>
<param name="deviceName">The name of the device.</param>
</member>
<member name="M:UnityEngine.Microphone.IsRecording(System.String)">
<summary>
<para>Query if a device is currently recording.</para>
</summary>
<param name="deviceName">The name of the device.</param>
</member>
<member name="M:UnityEngine.Microphone.Start(System.String,System.Boolean,System.Int32,System.Int32)">
<summary>
<para>Start Recording with device.</para>
</summary>
<param name="deviceName">The name of the device.</param>
<param name="loop">Indicates whether the recording should continue recording if lengthSec is reached, and wrap around and record from the beginning of the AudioClip.</param>
<param name="lengthSec">Is the length of the AudioClip produced by the recording.</param>
<param name="frequency">The sample rate of the AudioClip produced by the recording.</param>
<returns>
<para>The function returns null if the recording fails to start.</para>
</returns>
</member>
<member name="T:UnityEngine.MovieTexture">
<summary>
<para>Movie Textures are textures onto which movies are played back.</para>
</summary>
</member>
<member name="P:UnityEngine.MovieTexture.audioClip">
<summary>
<para>Returns the AudioClip belonging to the MovieTexture.</para>
</summary>
</member>
<member name="P:UnityEngine.MovieTexture.duration">
<summary>
<para>The time, in seconds, that the movie takes to play back completely.</para>
</summary>
</member>
<member name="P:UnityEngine.MovieTexture.isPlaying">
<summary>
<para>Returns whether the movie is playing or not.</para>
</summary>
</member>
<member name="P:UnityEngine.MovieTexture.isReadyToPlay">
<summary>
<para>If the movie is downloading from a web site, this returns if enough data has been downloaded so playback should be able to start without interruptions.</para>
</summary>
</member>
<member name="P:UnityEngine.MovieTexture.loop">
<summary>
<para>Set this to true to make the movie loop.</para>
</summary>
</member>
<member name="M:UnityEngine.MovieTexture.Pause">
<summary>
<para>Pauses playing the movie.</para>
</summary>
</member>
<member name="M:UnityEngine.MovieTexture.Play">
<summary>
<para>Starts playing the movie.</para>
</summary>
</member>
<member name="M:UnityEngine.MovieTexture.Stop">
<summary>
<para>Stops playing the movie, and rewinds it to the beginning.</para>
</summary>
</member>
<member name="T:UnityEngine.WebCamDevice">
<summary>
<para>A structure describing the webcam device.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamDevice.isFrontFacing">
<summary>
<para>True if camera faces the same direction a screen does, false otherwise.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamDevice.name">
<summary>
<para>A human-readable name of the device. Varies across different systems.</para>
</summary>
</member>
<member name="T:UnityEngine.WebCamTexture">
<summary>
<para>WebCam Textures are textures onto which the live video input is rendered.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.deviceName">
<summary>
<para>Set this to specify the name of the device to use.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.devices">
<summary>
<para>Return a list of available devices.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.didUpdateThisFrame">
<summary>
<para>Did the video buffer update this frame?</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.isPlaying">
<summary>
<para>Returns if the camera is currently playing.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.requestedFPS">
<summary>
<para>Set the requested frame rate of the camera device (in frames per second).</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.requestedHeight">
<summary>
<para>Set the requested height of the camera device.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.requestedWidth">
<summary>
<para>Set the requested width of the camera device.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.videoRotationAngle">
<summary>
<para>Returns an clockwise angle (in degrees), which can be used to rotate a polygon so camera contents are shown in correct orientation.</para>
</summary>
</member>
<member name="P:UnityEngine.WebCamTexture.videoVerticallyMirrored">
<summary>
<para>Returns if the texture image is vertically flipped.</para>
</summary>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor(System.Int32,System.Int32)">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor(System.String)">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor(System.String,System.Int32,System.Int32)">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.#ctor(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Create a WebCamTexture.</para>
</summary>
<param name="deviceName">The name of the video input device to be used.</param>
<param name="requestedWidth">The requested width of the texture.</param>
<param name="requestedHeight">The requested height of the texture.</param>
<param name="requestedFPS">The requested frame rate of the texture.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.GetPixel(System.Int32,System.Int32)">
<summary>
<para>Returns pixel color at coordinates (x, y).</para>
</summary>
<param name="x"></param>
<param name="y"></param>
</member>
<member name="M:UnityEngine.WebCamTexture.GetPixels">
<summary>
<para>Get a block of pixel colors.</para>
</summary>
</member>
<member name="M:UnityEngine.WebCamTexture.GetPixels(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Get a block of pixel colors.</para>
</summary>
<param name="x"></param>
<param name="y"></param>
<param name="blockWidth"></param>
<param name="blockHeight"></param>
</member>
<member name="M:UnityEngine.WebCamTexture.GetPixels32()">
<summary>
<para>Returns the pixels data in raw format.</para>
</summary>
<param name="colors">Optional array to receive pixel data.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.GetPixels32(UnityEngine.Color32[])">
<summary>
<para>Returns the pixels data in raw format.</para>
</summary>
<param name="colors">Optional array to receive pixel data.</param>
</member>
<member name="M:UnityEngine.WebCamTexture.Pause">
<summary>
<para>Pauses the camera.</para>
</summary>
</member>
<member name="M:UnityEngine.WebCamTexture.Play">
<summary>
<para>Starts the camera.</para>
</summary>
</member>
<member name="M:UnityEngine.WebCamTexture.Stop">
<summary>
<para>Stops the camera.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ClothModule</name>
</assembly>
<member name="T:UnityEngine.Cloth">
<summary>
<para>The Cloth class provides an interface to cloth simulation physics.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.bendingStiffness">
<summary>
<para>Bending stiffness of the cloth.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.capsuleColliders">
<summary>
<para>An array of CapsuleColliders which this Cloth instance should collide with.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.clothSolverFrequency">
<summary>
<para>Number of cloth solver iterations per second.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.coefficients">
<summary>
<para>The cloth skinning coefficients used to set up how the cloth interacts with the skinned mesh.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.collisionMassScale">
<summary>
<para>How much to increase mass of colliding particles.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.damping">
<summary>
<para>Damp cloth motion.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.enableContinuousCollision">
<summary>
<para>Enable continuous collision to improve collision stability.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.enabled">
<summary>
<para>Is this cloth enabled?</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.externalAcceleration">
<summary>
<para>A constant, external acceleration applied to the cloth.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.friction">
<summary>
<para>The friction of the cloth when colliding with the character.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.normals">
<summary>
<para>The current normals of the cloth object.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.randomAcceleration">
<summary>
<para>A random, external acceleration applied to the cloth.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.selfCollisionDistance">
<summary>
<para>Minimum distance at which two cloth particles repel each other (default: 0.0).</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.selfCollisionStiffness">
<summary>
<para>Self-collision stiffness defines how strong the separating impulse should be for colliding particles.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.sleepThreshold">
<summary>
<para>Cloth's sleep threshold.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.sphereColliders">
<summary>
<para>An array of ClothSphereColliderPairs which this Cloth instance should collide with.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.stiffnessFrequency">
<summary>
<para>Sets the stiffness frequency parameter.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.stretchingStiffness">
<summary>
<para>Stretching stiffness of the cloth.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.useGravity">
<summary>
<para>Should gravity affect the cloth simulation?</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.useTethers">
<summary>
<para>Use Tether Anchors.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.useVirtualParticles">
<summary>
<para>Add one virtual particle per triangle to improve collision stability.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.vertices">
<summary>
<para>The current vertex positions of the cloth object.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.worldAccelerationScale">
<summary>
<para>How much world-space acceleration of the character will affect cloth vertices.</para>
</summary>
</member>
<member name="P:UnityEngine.Cloth.worldVelocityScale">
<summary>
<para>How much world-space movement of the character will affect cloth vertices.</para>
</summary>
</member>
<member name="M:UnityEngine.Cloth.ClearTransformMotion">
<summary>
<para>Clear the pending transform changes from affecting the cloth simulation.</para>
</summary>
</member>
<member name="M:UnityEngine.Cloth.GetSelfAndInterCollisionIndices(System.Collections.Generic.List`1&lt;System.UInt32&gt;)">
<summary>
<para>Get list of particles to be used for self and inter collision.</para>
</summary>
<param name="indices">List to be populated with cloth particle indices that are used for self and/or inter collision.</param>
</member>
<member name="M:UnityEngine.Cloth.GetVirtualParticleIndices(System.Collections.Generic.List`1&lt;System.UInt32&gt;)">
<summary>
<para>Get list of indices to be used when generating virtual particles.</para>
</summary>
<param name="indices">List to be populated with virtual particle indices.</param>
</member>
<member name="M:UnityEngine.Cloth.GetVirtualParticleWeights(System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;)">
<summary>
<para>Get weights to be used when generating virtual particles for cloth.</para>
</summary>
<param name="weights">List to populate with virtual particle weights.</param>
</member>
<member name="M:UnityEngine.Cloth.SetEnabledFading(System.Boolean,System.Single)">
<summary>
<para>Fade the cloth simulation in or out.</para>
</summary>
<param name="enabled">Fading enabled or not.</param>
<param name="interpolationTime"></param>
</member>
<member name="M:UnityEngine.Cloth.SetSelfAndInterCollisionIndices(System.Collections.Generic.List`1&lt;System.UInt32&gt;)">
<summary>
<para>This allows you to set the cloth indices used for self and inter collision.</para>
</summary>
<param name="indices">List of cloth particles indices to use for cloth self and/or inter collision.</param>
</member>
<member name="M:UnityEngine.Cloth.SetVirtualParticleIndices(System.Collections.Generic.List`1&lt;System.UInt32&gt;)">
<summary>
<para>Set indices to use when generating virtual particles.</para>
</summary>
<param name="indices">List of cloth particle indices to use when generating virtual particles.</param>
</member>
<member name="M:UnityEngine.Cloth.SetVirtualParticleWeights(System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;)">
<summary>
<para>Sets weights to be used when generating virtual particles for cloth.</para>
</summary>
<param name="weights">List of weights to be used when setting virutal particles for cloth.</param>
</member>
<member name="T:UnityEngine.ClothSkinningCoefficient">
<summary>
<para>The ClothSkinningCoefficient struct is used to set up how a Cloth component is allowed to move with respect to the SkinnedMeshRenderer it is attached to.</para>
</summary>
</member>
<member name="F:UnityEngine.ClothSkinningCoefficient.collisionSphereDistance">
<summary>
<para>Definition of a sphere a vertex is not allowed to enter. This allows collision against the animated cloth.</para>
</summary>
</member>
<member name="F:UnityEngine.ClothSkinningCoefficient.maxDistance">
<summary>
<para>Distance a vertex is allowed to travel from the skinned mesh vertex position.</para>
</summary>
</member>
<member name="T:UnityEngine.ClothSphereColliderPair">
<summary>
<para>A pair of SphereColliders used to define shapes for Cloth objects to collide against.</para>
</summary>
</member>
<member name="P:UnityEngine.ClothSphereColliderPair.first">
<summary>
<para>The first SphereCollider of a ClothSphereColliderPair.</para>
</summary>
</member>
<member name="P:UnityEngine.ClothSphereColliderPair.second">
<summary>
<para>The second SphereCollider of a ClothSphereColliderPair.</para>
</summary>
</member>
<member name="M:UnityEngine.ClothSphereColliderPair.#ctor(UnityEngine.SphereCollider)">
<summary>
<para>Creates a ClothSphereColliderPair. If only one SphereCollider is given, the ClothSphereColliderPair will define a simple sphere. If two SphereColliders are given, the ClothSphereColliderPair defines a conic capsule shape, composed of the two spheres and the cone connecting the two.</para>
</summary>
<param name="a">The first SphereCollider of a ClothSphereColliderPair.</param>
<param name="b">The second SphereCollider of a ClothSphereColliderPair.</param>
</member>
<member name="M:UnityEngine.ClothSphereColliderPair.#ctor(UnityEngine.SphereCollider,UnityEngine.SphereCollider)">
<summary>
<para>Creates a ClothSphereColliderPair. If only one SphereCollider is given, the ClothSphereColliderPair will define a simple sphere. If two SphereColliders are given, the ClothSphereColliderPair defines a conic capsule shape, composed of the two spheres and the cone connecting the two.</para>
</summary>
<param name="a">The first SphereCollider of a ClothSphereColliderPair.</param>
<param name="b">The second SphereCollider of a ClothSphereColliderPair.</param>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ClusterInputModule</name>
</assembly>
<member name="T:UnityEngine.ClusterInput">
<summary>
<para>Interface for reading and writing inputs in a Unity Cluster.</para>
</summary>
</member>
<member name="M:UnityEngine.ClusterInput.AddInput(System.String,System.String,System.String,System.Int32,UnityEngine.ClusterInputType)">
<summary>
<para>Add a new VRPN input entry.</para>
</summary>
<param name="name">Name of the input entry. This has to be unique.</param>
<param name="deviceName">Device name registered to VRPN server.</param>
<param name="serverUrl">URL to the vrpn server.</param>
<param name="index">Index of the Input entry, refer to vrpn.cfg if unsure.</param>
<param name="type">Type of the input.</param>
<returns>
<para>True if the operation succeed.</para>
</returns>
</member>
<member name="M:UnityEngine.ClusterInput.CheckConnectionToServer(System.String)">
<summary>
<para>Check the connection status of the device to the VRPN server it connected to.</para>
</summary>
<param name="name">Name of the input entry.</param>
</member>
<member name="M:UnityEngine.ClusterInput.EditInput(System.String,System.String,System.String,System.Int32,UnityEngine.ClusterInputType)">
<summary>
<para>Edit an input entry which added via ClusterInput.AddInput.</para>
</summary>
<param name="name">Name of the input entry. This has to be unique.</param>
<param name="deviceName">Device name registered to VRPN server.</param>
<param name="serverUrl">URL to the vrpn server.</param>
<param name="index">Index of the Input entry, refer to vrpn.cfg if unsure.</param>
<param name="type">Type of the ClusterInputType as follow.</param>
</member>
<member name="M:UnityEngine.ClusterInput.GetAxis(System.String)">
<summary>
<para>Returns the axis value as a continous float.</para>
</summary>
<param name="name">Name of input to poll.c.</param>
</member>
<member name="M:UnityEngine.ClusterInput.GetButton(System.String)">
<summary>
<para>Returns the binary value of a button.</para>
</summary>
<param name="name">Name of input to poll.</param>
</member>
<member name="M:UnityEngine.ClusterInput.GetTrackerPosition(System.String)">
<summary>
<para>Return the position of a tracker as a Vector3.</para>
</summary>
<param name="name">Name of input to poll.</param>
</member>
<member name="M:UnityEngine.ClusterInput.GetTrackerRotation(System.String)">
<summary>
<para>Returns the rotation of a tracker as a Quaternion.</para>
</summary>
<param name="name">Name of input to poll.</param>
</member>
<member name="M:UnityEngine.ClusterInput.SetAxis(System.String,System.Single)">
<summary>
<para>Sets the axis value for this input. Only works for input typed Custom.</para>
</summary>
<param name="name">Name of input to modify.</param>
<param name="value">Value to set.</param>
</member>
<member name="M:UnityEngine.ClusterInput.SetButton(System.String,System.Boolean)">
<summary>
<para>Sets the button value for this input. Only works for input typed Custom.</para>
</summary>
<param name="name">Name of input to modify.</param>
<param name="value">Value to set.</param>
</member>
<member name="M:UnityEngine.ClusterInput.SetTrackerPosition(System.String,UnityEngine.Vector3)">
<summary>
<para>Sets the tracker position for this input. Only works for input typed Custom.</para>
</summary>
<param name="name">Name of input to modify.</param>
<param name="value">Value to set.</param>
</member>
<member name="M:UnityEngine.ClusterInput.SetTrackerRotation(System.String,UnityEngine.Quaternion)">
<summary>
<para>Sets the tracker rotation for this input. Only works for input typed Custom.</para>
</summary>
<param name="name">Name of input to modify.</param>
<param name="value">Value to set.</param>
</member>
<member name="T:UnityEngine.ClusterInputType">
<summary>
<para>Values to determine the type of input value to be expect from one entry of ClusterInput.</para>
</summary>
</member>
<member name="F:UnityEngine.ClusterInputType.Axis">
<summary>
<para>Device is an analog axis that provides continuous value represented by a float.</para>
</summary>
</member>
<member name="F:UnityEngine.ClusterInputType.Button">
<summary>
<para>Device that return a binary result of pressed or not pressed.</para>
</summary>
</member>
<member name="F:UnityEngine.ClusterInputType.CustomProvidedInput">
<summary>
<para>A user customized input.</para>
</summary>
</member>
<member name="F:UnityEngine.ClusterInputType.Tracker">
<summary>
<para>Device that provide position and orientation values.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ClusterRendererModule</name>
</assembly>
<member name="T:UnityEngine.ClusterNetwork">
<summary>
<para>A helper class that contains static method to inquire status of Unity Cluster.</para>
</summary>
</member>
<member name="P:UnityEngine.ClusterNetwork.isDisconnected">
<summary>
<para>Check whether the current instance is disconnected from the cluster network.</para>
</summary>
</member>
<member name="P:UnityEngine.ClusterNetwork.isMasterOfCluster">
<summary>
<para>Check whether the current instance is a master node in the cluster network.</para>
</summary>
</member>
<member name="P:UnityEngine.ClusterNetwork.nodeIndex">
<summary>
<para>To acquire or set the node index of the current machine from the cluster network.</para>
</summary>
</member>
</members>
</doc>
This diff could not be displayed because it is too large.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.CrashReportingModule</name>
</assembly>
<member name="T:UnityEngine.CrashReportHandler.CrashReportHandler">
<summary>
<para>Engine API for CrashReporting Service.</para>
</summary>
</member>
<member name="P:UnityEngine.CrashReportHandler.CrashReportHandler.enableCaptureExceptions">
<summary>
<para>This Boolean field will cause CrashReportHandler to capture exceptions when set to true. By default enable capture exceptions is true.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.DirectorModule</name>
</assembly>
<member name="T:UnityEngine.Playables.DirectorWrapMode">
<summary>
<para>Wrap mode for Playables.</para>
</summary>
</member>
<member name="F:UnityEngine.Playables.DirectorWrapMode.Hold">
<summary>
<para>Hold the last frame when the playable time reaches it's duration.</para>
</summary>
</member>
<member name="F:UnityEngine.Playables.DirectorWrapMode.Loop">
<summary>
<para>Loop back to zero time and continue playing.</para>
</summary>
</member>
<member name="F:UnityEngine.Playables.DirectorWrapMode.None">
<summary>
<para>Do not keep playing when the time reaches the duration.</para>
</summary>
</member>
<member name="T:UnityEngine.Playables.PlayableDirector">
<summary>
<para>Instantiates a PlayableAsset and controls playback of Playable objects.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.duration">
<summary>
<para>The duration of the Playable in seconds.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.extrapolationMode">
<summary>
<para>Controls how the time is incremented when it goes beyond the duration of the playable.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.initialTime">
<summary>
<para>The time at which the Playable should start when first played.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.playableAsset">
<summary>
<para>The PlayableAsset that is used to instantiate a playable for playback.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.playableGraph">
<summary>
<para>The PlayableGraph created by the PlayableDirector.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.playOnAwake">
<summary>
<para>Whether the playable asset will start playing back as soon as the component awakes.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.state">
<summary>
<para>The current playing state of the component. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.time">
<summary>
<para>The component's current time. This value is incremented according to the PlayableDirector.timeUpdateMode when it is playing. You can also change this value manually.</para>
</summary>
</member>
<member name="P:UnityEngine.Playables.PlayableDirector.timeUpdateMode">
<summary>
<para>Controls how time is incremented when playing back.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.ClearReferenceValue(UnityEngine.PropertyName)">
<summary>
<para>Clears an exposed reference value.</para>
</summary>
<param name="id">Identifier of the ExposedReference.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.DeferredEvaluate">
<summary>
<para>Tells the PlayableDirector to evaluate it's PlayableGraph on the next update.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Evaluate">
<summary>
<para>Evaluates the currently playing Playable at the current time.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.GetGenericBinding(UnityEngine.Object)">
<summary>
<para>Returns a binding to a reference object.</para>
</summary>
<param name="key">The object that acts as a key.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.GetReferenceValue(UnityEngine.PropertyName,System.Boolean&amp;)">
<summary>
<para>Retreives an ExposedReference binding.</para>
</summary>
<param name="id">Identifier of the ExposedReference.</param>
<param name="idValid">Whether the reference was found.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Pause">
<summary>
<para>Pauses playback of the currently running playable.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Play(UnityEngine.Playables.PlayableAsset,UnityEngine.Playables.DirectorWrapMode)">
<summary>
<para>Instatiates a Playable using the provided PlayableAsset and starts playback.</para>
</summary>
<param name="asset">An asset to instantiate a playable from.</param>
<param name="mode">What to do when the time passes the duration of the playable.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Play(UnityEngine.Playables.PlayableAsset)">
<summary>
<para>Instatiates a Playable using the provided PlayableAsset and starts playback.</para>
</summary>
<param name="asset">An asset to instantiate a playable from.</param>
<param name="mode">What to do when the time passes the duration of the playable.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Play">
<summary>
<para>Instatiates a Playable using the provided PlayableAsset and starts playback.</para>
</summary>
<param name="asset">An asset to instantiate a playable from.</param>
<param name="mode">What to do when the time passes the duration of the playable.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.RebuildGraph">
<summary>
<para>Discards the existing PlayableGraph and creates a new instance.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Resume">
<summary>
<para>Resume playing a paused playable.</para>
</summary>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.SetGenericBinding(UnityEngine.Object,UnityEngine.Object)">
<summary>
<para>Sets the binding of a reference object from a PlayableBinding.</para>
</summary>
<param name="key">The source object in the PlayableBinding.</param>
<param name="value">The object to bind to the key.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.SetReferenceValue(UnityEngine.PropertyName,UnityEngine.Object)">
<summary>
<para>Sets an ExposedReference value.</para>
</summary>
<param name="id">Identifier of the ExposedReference.</param>
<param name="value">The object to bind to set the reference value to.</param>
</member>
<member name="M:UnityEngine.Playables.PlayableDirector.Stop">
<summary>
<para>Stops playback of the current Playable and destroys the corresponding graph.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.GameCenterModule</name>
</assembly>
<member name="T:UnityEngine.Social">
<summary>
<para>Generic access to the Social API.</para>
</summary>
</member>
<member name="P:UnityEngine.Social.localUser">
<summary>
<para>The local user (potentially not logged in).</para>
</summary>
</member>
<member name="P:UnityEngine.Social.Active">
<summary>
<para>This is the currently active social platform. </para>
</summary>
</member>
<member name="M:UnityEngine.Social.CreateAchievement">
<summary>
<para>Create an IAchievement instance.</para>
</summary>
</member>
<member name="M:UnityEngine.Social.CreateLeaderboard">
<summary>
<para>Create an ILeaderboard instance.</para>
</summary>
</member>
<member name="M:UnityEngine.Social.LoadAchievementDescriptions(System.Action`1&lt;UnityEngine.SocialPlatforms.IAchievementDescription[]&gt;)">
<summary>
<para>Loads the achievement descriptions accociated with this application.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.LoadAchievements(System.Action`1&lt;UnityEngine.SocialPlatforms.IAchievement[]&gt;)">
<summary>
<para>Load the achievements the logged in user has already achieved or reported progress on.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.LoadScores(System.String,System.Action`1&lt;UnityEngine.SocialPlatforms.IScore[]&gt;)">
<summary>
<para>Load a default set of scores from the given leaderboard.</para>
</summary>
<param name="leaderboardID"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.LoadUsers(System.String[],System.Action`1&lt;UnityEngine.SocialPlatforms.IUserProfile[]&gt;)">
<summary>
<para>Load the user profiles accociated with the given array of user IDs.</para>
</summary>
<param name="userIDs"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.ReportProgress(System.String,System.Double,System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Reports the progress of an achievement.</para>
</summary>
<param name="achievementID"></param>
<param name="progress"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.ReportScore(System.Int64,System.String,System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Report a score to a specific leaderboard.</para>
</summary>
<param name="score"></param>
<param name="board"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.Social.ShowAchievementsUI">
<summary>
<para>Show a default/system view of the games achievements.</para>
</summary>
</member>
<member name="M:UnityEngine.Social.ShowLeaderboardUI">
<summary>
<para>Show a default/system view of the games leaderboards.</para>
</summary>
</member>
<member name="T:UnityEngine.SocialPlatforms.GameCenter.GameCenterPlatform">
<summary>
<para>iOS GameCenter implementation for network services.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.GameCenter.GameCenterPlatform.ResetAllAchievements(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Reset all the achievements for the local user.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.GameCenter.GameCenterPlatform.ShowDefaultAchievementCompletionBanner(System.Boolean)">
<summary>
<para>Show the default iOS banner when achievements are completed.</para>
</summary>
<param name="value"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.GameCenter.GameCenterPlatform.ShowLeaderboardUI(System.String,UnityEngine.SocialPlatforms.TimeScope)">
<summary>
<para>Show the leaderboard UI with a specific leaderboard shown initially with a specific time scope selected.</para>
</summary>
<param name="leaderboardID"></param>
<param name="timeScope"></param>
</member>
<member name="?:UnityEngine.SocialPlatforms.IAchievement">
<summary>
<para>Information for a user's achievement.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievement.completed">
<summary>
<para>Set to true when percentCompleted is 100.0.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievement.hidden">
<summary>
<para>This achievement is currently hidden from the user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievement.id">
<summary>
<para>The unique identifier of this achievement.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievement.lastReportedDate">
<summary>
<para>Set by server when percentCompleted is updated.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievement.percentCompleted">
<summary>
<para>Progress for this achievement.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.IAchievement.ReportProgress(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Send notification about progress on this achievement.</para>
</summary>
<param name="callback"></param>
</member>
<member name="?:UnityEngine.SocialPlatforms.IAchievementDescription">
<summary>
<para>Static data describing an achievement.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.achievedDescription">
<summary>
<para>Description when the achivement is completed.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.hidden">
<summary>
<para>Hidden achievement are not shown in the list until the percentCompleted has been touched (even if it's 0.0).</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.id">
<summary>
<para>Unique identifier for this achievement description.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.image">
<summary>
<para>Image representation of the achievement.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.points">
<summary>
<para>Point value of this achievement.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.title">
<summary>
<para>Human readable title.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IAchievementDescription.unachievedDescription">
<summary>
<para>Description when the achivement has not been completed.</para>
</summary>
</member>
<member name="?:UnityEngine.SocialPlatforms.ILeaderboard">
<summary>
<para>The leaderboard contains the scores of all players for a particular game.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.id">
<summary>
<para>Unique identifier for this leaderboard.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.loading">
<summary>
<para>The leaderboad is in the process of loading scores.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.localUserScore">
<summary>
<para>The leaderboard score of the logged in user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.maxRange">
<summary>
<para>The total amount of scores the leaderboard contains.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.range">
<summary>
<para>The rank range this leaderboard returns.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.scores">
<summary>
<para>The leaderboard scores returned by a query.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.timeScope">
<summary>
<para>The time period/scope searched by this leaderboard.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.title">
<summary>
<para>The human readable title of this leaderboard.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILeaderboard.userScope">
<summary>
<para>The users scope searched by this leaderboard.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ILeaderboard.LoadScores(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Load scores according to the filters set on this leaderboard.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ILeaderboard.SetUserFilter(System.String[])">
<summary>
<para>Only search for these user IDs.</para>
</summary>
<param name="userIDs">List of user ids.</param>
</member>
<member name="?:UnityEngine.SocialPlatforms.ILocalUser">
<summary>
<para>Represents the local or currently logged in user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILocalUser.authenticated">
<summary>
<para>Checks if the current user has been authenticated.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILocalUser.friends">
<summary>
<para>The users friends list.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ILocalUser.underage">
<summary>
<para>Is the user underage?</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ILocalUser.Authenticate(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Authenticate the local user to the current active Social API implementation and fetch his profile data.</para>
</summary>
<param name="callback">Callback that is called whenever the authentication operation is finished. The first parameter is a Boolean identifying whether the authentication operation was successful. The optional second argument contains a string identifying any errors (if available) if the operation was unsuccessful.</param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ILocalUser.Authenticate(System.Action`2&lt;System.Boolean,System.String&gt;)">
<summary>
<para>Authenticate the local user to the current active Social API implementation and fetch his profile data.</para>
</summary>
<param name="callback">Callback that is called whenever the authentication operation is finished. The first parameter is a Boolean identifying whether the authentication operation was successful. The optional second argument contains a string identifying any errors (if available) if the operation was unsuccessful.</param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ILocalUser.LoadFriends(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Fetches the friends list of the logged in user. The friends list on the ISocialPlatform.localUser|Social.localUser instance is populated if this call succeeds.</para>
</summary>
<param name="callback"></param>
</member>
<member name="?:UnityEngine.SocialPlatforms.IScore">
<summary>
<para>A game score.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.date">
<summary>
<para>The date the score was achieved.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.formattedValue">
<summary>
<para>The correctly formatted value of the score, like X points or X kills.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.leaderboardID">
<summary>
<para>The ID of the leaderboard this score belongs to.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.rank">
<summary>
<para>The rank or position of the score in the leaderboard. </para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.userID">
<summary>
<para>The user who owns this score.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IScore.value">
<summary>
<para>The score value achieved.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.IScore.ReportScore(System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>Report this score instance.</para>
</summary>
<param name="callback"></param>
</member>
<member name="?:UnityEngine.SocialPlatforms.ISocialPlatform">
<summary>
<para>The generic Social API interface which implementations must inherit.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.ISocialPlatform.localUser">
<summary>
<para>See Social.localUser.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.CreateAchievement">
<summary>
<para>See Social.CreateAchievement..</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.CreateLeaderboard">
<summary>
<para>See Social.CreateLeaderboard.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.LoadAchievementDescriptions(System.Action`1&lt;UnityEngine.SocialPlatforms.IAchievementDescription[]&gt;)">
<summary>
<para>See Social.LoadAchievementDescriptions.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.LoadAchievements(System.Action`1&lt;UnityEngine.SocialPlatforms.IAchievement[]&gt;)">
<summary>
<para>See Social.LoadAchievements.</para>
</summary>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.LoadScores(System.String,System.Action`1&lt;UnityEngine.SocialPlatforms.IScore[]&gt;)">
<summary>
<para>See Social.LoadScores.</para>
</summary>
<param name="leaderboardID"></param>
<param name="callback"></param>
<param name="board"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.LoadScores(UnityEngine.SocialPlatforms.ILeaderboard,System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>See Social.LoadScores.</para>
</summary>
<param name="leaderboardID"></param>
<param name="callback"></param>
<param name="board"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.LoadUsers(System.String[],System.Action`1&lt;UnityEngine.SocialPlatforms.IUserProfile[]&gt;)">
<summary>
<para>See Social.LoadUsers.</para>
</summary>
<param name="userIDs"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.ReportProgress(System.String,System.Double,System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>See Social.ReportProgress.</para>
</summary>
<param name="achievementID"></param>
<param name="progress"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.ReportScore(System.Int64,System.String,System.Action`1&lt;System.Boolean&gt;)">
<summary>
<para>See Social.ReportScore.</para>
</summary>
<param name="score"></param>
<param name="board"></param>
<param name="callback"></param>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.ShowAchievementsUI">
<summary>
<para>See Social.ShowAchievementsUI.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.ISocialPlatform.ShowLeaderboardUI">
<summary>
<para>See Social.ShowLeaderboardUI.</para>
</summary>
</member>
<member name="?:UnityEngine.SocialPlatforms.IUserProfile">
<summary>
<para>Represents generic user instances, like friends of the local user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IUserProfile.id">
<summary>
<para>This users unique identifier.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IUserProfile.image">
<summary>
<para>Avatar image of the user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IUserProfile.isFriend">
<summary>
<para>Is this user a friend of the current logged in user?</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IUserProfile.state">
<summary>
<para>Presence state of the user.</para>
</summary>
</member>
<member name="P:UnityEngine.SocialPlatforms.IUserProfile.userName">
<summary>
<para>This user's username or alias.</para>
</summary>
</member>
<member name="T:UnityEngine.SocialPlatforms.Range">
<summary>
<para>The score range a leaderboard query should include.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.Range.count">
<summary>
<para>The total amount of scores retreived.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.Range.from">
<summary>
<para>The rank of the first score which is returned.</para>
</summary>
</member>
<member name="M:UnityEngine.SocialPlatforms.Range.#ctor(System.Int32,System.Int32)">
<summary>
<para>Constructor for a score range, the range starts from a specific value and contains a maxium score count.</para>
</summary>
<param name="fromValue">The minimum allowed value.</param>
<param name="valueCount">The number of possible values.</param>
</member>
<member name="T:UnityEngine.SocialPlatforms.TimeScope">
<summary>
<para>The scope of time searched through when querying the leaderboard.</para>
</summary>
</member>
<member name="T:UnityEngine.SocialPlatforms.UserScope">
<summary>
<para>The scope of the users searched through when querying the leaderboard.</para>
</summary>
</member>
<member name="T:UnityEngine.SocialPlatforms.UserState">
<summary>
<para>User presence state.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.UserState.Offline">
<summary>
<para>The user is offline.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.UserState.Online">
<summary>
<para>The user is online.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.UserState.OnlineAndAway">
<summary>
<para>The user is online but away from their computer.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.UserState.OnlineAndBusy">
<summary>
<para>The user is online but set their status to busy.</para>
</summary>
</member>
<member name="F:UnityEngine.SocialPlatforms.UserState.Playing">
<summary>
<para>The user is playing a game.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.GridModule</name>
</assembly>
<member name="T:UnityEngine.Grid">
<summary>
<para>Grid is the base class for plotting a layout of uniformly spaced points and lines.</para>
</summary>
</member>
<member name="P:UnityEngine.Grid.cellGap">
<summary>
<para>The size of the gap between each cell in the Grid.</para>
</summary>
</member>
<member name="P:UnityEngine.Grid.cellLayout">
<summary>
<para>The layout of the cells in the Grid.</para>
</summary>
</member>
<member name="P:UnityEngine.Grid.cellSize">
<summary>
<para>The size of each cell in the Grid.</para>
</summary>
</member>
<member name="P:UnityEngine.Grid.cellSwizzle">
<summary>
<para>The cell swizzle for the Grid.</para>
</summary>
</member>
<member name="M:UnityEngine.Grid.GetCellCenterLocal(UnityEngine.Vector3Int)">
<summary>
<para>Get the logical center coordinate of a grid cell in local space.</para>
</summary>
<param name="position">Grid cell position.</param>
<returns>
<para>Center of the cell transformed into local space coordinates.</para>
</returns>
</member>
<member name="M:UnityEngine.Grid.GetCellCenterWorld(UnityEngine.Vector3Int)">
<summary>
<para>Get the logical center coordinate of a grid cell in world space.</para>
</summary>
<param name="position">Grid cell position.</param>
<returns>
<para>Center of the cell transformed into world space coordinates.</para>
</returns>
</member>
<member name="M:UnityEngine.Grid.InverseSwizzle(UnityEngine.GridLayout/CellSwizzle,UnityEngine.Vector3)">
<summary>
<para>Does the inverse swizzle of the given position for given swizzle order.</para>
</summary>
<param name="swizzle">Determines the rearrangement order for the inverse swizzle.</param>
<param name="position">Position to inverse swizzle.</param>
<returns>
<para>The inversed swizzled position.</para>
</returns>
</member>
<member name="M:UnityEngine.Grid.Swizzle(UnityEngine.GridLayout/CellSwizzle,UnityEngine.Vector3)">
<summary>
<para>Swizzles the given position with the given swizzle order.</para>
</summary>
<param name="swizzle">Determines the rearrangement order for the swizzle.</param>
<param name="position">Position to swizzle.</param>
<returns>
<para>The swizzled position.</para>
</returns>
</member>
<member name="T:UnityEngine.GridLayout">
<summary>
<para>An abstract class that defines a grid layout.</para>
</summary>
</member>
<member name="P:UnityEngine.GridLayout.cellGap">
<summary>
<para>The size of the gap between each cell in the layout.</para>
</summary>
</member>
<member name="P:UnityEngine.GridLayout.cellLayout">
<summary>
<para>The layout of the cells.</para>
</summary>
</member>
<member name="P:UnityEngine.GridLayout.cellSize">
<summary>
<para>The size of each cell in the layout.</para>
</summary>
</member>
<member name="P:UnityEngine.GridLayout.cellSwizzle">
<summary>
<para>The cell swizzle for the layout.</para>
</summary>
</member>
<member name="T:UnityEngine.GridLayout.CellLayout">
<summary>
<para>The layout of the GridLayout.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellLayout.Rectangle">
<summary>
<para>Rectangular layout for cells in the GridLayout.</para>
</summary>
</member>
<member name="T:UnityEngine.GridLayout.CellSwizzle">
<summary>
<para>Swizzles cell positions to other positions.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.XYZ">
<summary>
<para>Keeps the cell positions at XYZ.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.XZY">
<summary>
<para>Swizzles the cell positions from XYZ to XZY.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.YXZ">
<summary>
<para>Swizzles the cell positions from XYZ to YXZ.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.YZX">
<summary>
<para>Swizzles the cell positions from XYZ to YZX.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.ZXY">
<summary>
<para>Swizzles the cell positions from XYZ to ZXY.</para>
</summary>
</member>
<member name="F:UnityEngine.GridLayout.CellSwizzle.ZYX">
<summary>
<para>Swizzles the cell positions from XYZ to ZYX.</para>
</summary>
</member>
<member name="M:UnityEngine.GridLayout.CellToLocal(UnityEngine.Vector3Int)">
<summary>
<para>Converts a cell position to local position space.</para>
</summary>
<param name="cellPosition">Cell position to convert.</param>
<returns>
<para>Local position of the cell position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.CellToLocalInterpolated(UnityEngine.Vector3)">
<summary>
<para>Converts an interpolated cell position in floats to local position space.</para>
</summary>
<param name="cellPosition">Interpolated cell position to convert.</param>
<returns>
<para>Local position of the cell position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.CellToWorld(UnityEngine.Vector3Int)">
<summary>
<para>Converts a cell position to world position space.</para>
</summary>
<param name="cellPosition">Cell position to convert.</param>
<returns>
<para>World position of the cell position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.GetBoundsLocal(UnityEngine.Vector3Int)">
<summary>
<para>Returns the local bounds for a cell at the location.</para>
</summary>
<param name="localPosition">Location of the cell.</param>
<param name="cellPosition"></param>
<returns>
<para>Local bounds of cell at the position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.GetLayoutCellCenter">
<summary>
<para>Get the default center coordinate of a cell for the set layout of the Grid.</para>
</summary>
<returns>
<para>Cell Center coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.LocalToCell(UnityEngine.Vector3)">
<summary>
<para>Converts a local position to cell position.</para>
</summary>
<param name="localPosition">Local Position to convert.</param>
<returns>
<para>Cell position of the local position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.LocalToCellInterpolated(UnityEngine.Vector3)">
<summary>
<para>Converts a local position to cell position.</para>
</summary>
<param name="localPosition">Local Position to convert.</param>
<returns>
<para>Interpolated cell position of the local position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.LocalToWorld(UnityEngine.Vector3)">
<summary>
<para>Converts a local position to world position.</para>
</summary>
<param name="localPosition">Local Position to convert.</param>
<returns>
<para>World position of the local position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.WorldToCell(UnityEngine.Vector3)">
<summary>
<para>Converts a world position to cell position.</para>
</summary>
<param name="worldPosition">World Position to convert.</param>
<returns>
<para>Cell position of the world position.</para>
</returns>
</member>
<member name="M:UnityEngine.GridLayout.WorldToLocal(UnityEngine.Vector3)">
<summary>
<para>Converts a world position to local position.</para>
</summary>
<param name="worldPosition">World Position to convert.</param>
<returns>
<para>Local position of the world position.</para>
</returns>
</member>
</members>
</doc>
This diff could not be displayed because it is too large.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ImageConversionModule</name>
</assembly>
<member name="T:UnityEngine.ImageConversion">
<summary>
<para>Class with utility methods and extension methods to deal with converting image data from or to PNG and JPEG formats.</para>
</summary>
</member>
<member name="M:UnityEngine.ImageConversion.EncodeToEXR(UnityEngine.Texture2D,UnityEngine.Texture2D/EXRFlags)">
<summary>
<para>Encodes this texture into the EXR format.</para>
</summary>
<param name="tex">The texture to convert.</param>
<param name="flags">Flags used to control compression and the output format.</param>
</member>
<member name="M:UnityEngine.ImageConversion.EncodeToJPG(UnityEngine.Texture2D,System.Int32)">
<summary>
<para>Encodes this texture into JPG format.</para>
</summary>
<param name="tex">Text texture to convert.</param>
<param name="quality">JPG quality to encode with, 1..100 (default 75).</param>
</member>
<member name="M:UnityEngine.ImageConversion.EncodeToJPG(UnityEngine.Texture2D)">
<summary>
<para>Encodes this texture into JPG format.</para>
</summary>
<param name="tex">Text texture to convert.</param>
<param name="quality">JPG quality to encode with, 1..100 (default 75).</param>
</member>
<member name="M:UnityEngine.ImageConversion.EncodeToPNG(UnityEngine.Texture2D)">
<summary>
<para>Encodes this texture into PNG format.</para>
</summary>
<param name="tex">The texture to convert.</param>
</member>
<member name="M:UnityEngine.ImageConversion.LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)">
<summary>
<para>Loads PNG/JPG image byte array into a texture.</para>
</summary>
<param name="data">The byte array containing the image data to load.</param>
<param name="markNonReadable">Set to false by default, pass true to optionally mark the texture as non-readable.</param>
<param name="tex">The texture to load the image into.</param>
<returns>
<para>Returns true if the data can be loaded, false otherwise.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.InputModule</name>
</assembly>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.JSONSerializeModule</name>
</assembly>
<member name="T:UnityEngine.JsonUtility">
<summary>
<para>Utility functions for working with JSON data.</para>
</summary>
</member>
<member name="M:UnityEngine.JsonUtility.FromJson(System.String)">
<summary>
<para>Create an object from its JSON representation.</para>
</summary>
<param name="json">The JSON representation of the object.</param>
<returns>
<para>An instance of the object.</para>
</returns>
</member>
<member name="M:UnityEngine.JsonUtility.FromJson(System.String,System.Type)">
<summary>
<para>Create an object from its JSON representation.</para>
</summary>
<param name="json">The JSON representation of the object.</param>
<param name="type">The type of object represented by the Json.</param>
<returns>
<para>An instance of the object.</para>
</returns>
</member>
<member name="M:UnityEngine.JsonUtility.FromJsonOverwrite(System.String,System.Object)">
<summary>
<para>Overwrite data in an object by reading from its JSON representation.</para>
</summary>
<param name="json">The JSON representation of the object.</param>
<param name="objectToOverwrite">The object that should be overwritten.</param>
</member>
<member name="M:UnityEngine.JsonUtility.ToJson(System.Object)">
<summary>
<para>Generate a JSON representation of the public fields of an object.</para>
</summary>
<param name="obj">The object to convert to JSON form.</param>
<param name="prettyPrint">If true, format the output for readability. If false, format the output for minimum size. Default is false.</param>
<returns>
<para>The object's data in JSON format.</para>
</returns>
</member>
<member name="M:UnityEngine.JsonUtility.ToJson(System.Object,System.Boolean)">
<summary>
<para>Generate a JSON representation of the public fields of an object.</para>
</summary>
<param name="obj">The object to convert to JSON form.</param>
<param name="prettyPrint">If true, format the output for readability. If false, format the output for minimum size. Default is false.</param>
<returns>
<para>The object's data in JSON format.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ParticlesLegacyModule</name>
</assembly>
<member name="T:UnityEngine.EllipsoidParticleEmitter">
<summary>
<para>Class used to allow GameObject.AddComponent / GameObject.GetComponent to be used.</para>
</summary>
</member>
<member name="T:UnityEngine.MeshParticleEmitter">
<summary>
<para>Class used to allow GameObject.AddComponent / GameObject.GetComponent to be used.</para>
</summary>
</member>
<member name="T:UnityEngine.Particle">
<summary>
<para>(Legacy Particle system).</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.angularVelocity">
<summary>
<para>The angular velocity of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.color">
<summary>
<para>The color of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.energy">
<summary>
<para>The energy of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.position">
<summary>
<para>The position of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.rotation">
<summary>
<para>The rotation of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.size">
<summary>
<para>The size of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.startEnergy">
<summary>
<para>The starting energy of the particle.</para>
</summary>
</member>
<member name="P:UnityEngine.Particle.velocity">
<summary>
<para>The velocity of the particle.</para>
</summary>
</member>
<member name="T:UnityEngine.ParticleAnimator">
<summary>
<para>(Legacy Particles) Particle animators move your particles over time, you use them to apply wind, drag &amp; color cycling to your particle emitters.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.autodestruct">
<summary>
<para>Does the GameObject of this particle animator auto destructs?</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.colorAnimation">
<summary>
<para>Colors the particles will cycle through over their lifetime.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.damping">
<summary>
<para>How much particles are slowed down every frame.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.doesAnimateColor">
<summary>
<para>Do particles cycle their color over their lifetime?</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.force">
<summary>
<para>The force being applied to particles every frame.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.localRotationAxis">
<summary>
<para>Local space axis the particles rotate around.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.rndForce">
<summary>
<para>A random force added to particles every frame.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.sizeGrow">
<summary>
<para>How the particle sizes grow over their lifetime.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleAnimator.worldRotationAxis">
<summary>
<para>World space axis the particles rotate around.</para>
</summary>
</member>
<member name="T:UnityEngine.ParticleEmitter">
<summary>
<para>(Legacy Particles) Script interface for particle emitters.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.angularVelocity">
<summary>
<para>The angular velocity of new particles in degrees per second.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.emit">
<summary>
<para>Should particles be automatically emitted each frame?</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.emitterVelocityScale">
<summary>
<para>The amount of the emitter's speed that the particles inherit.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.enabled">
<summary>
<para>Turns the ParticleEmitter on or off.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.localVelocity">
<summary>
<para>The starting speed of particles along X, Y, and Z, measured in the object's orientation.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.maxEmission">
<summary>
<para>The maximum number of particles that will be spawned every second.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.maxEnergy">
<summary>
<para>The maximum lifetime of each particle, measured in seconds.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.maxSize">
<summary>
<para>The maximum size each particle can be at the time when it is spawned.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.minEmission">
<summary>
<para>The minimum number of particles that will be spawned every second.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.minEnergy">
<summary>
<para>The minimum lifetime of each particle, measured in seconds.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.minSize">
<summary>
<para>The minimum size each particle can be at the time when it is spawned.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.particleCount">
<summary>
<para>The current number of particles (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.particles">
<summary>
<para>Returns a copy of all particles and assigns an array of all particles to be the current particles.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.rndAngularVelocity">
<summary>
<para>A random angular velocity modifier for new particles.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.rndRotation">
<summary>
<para>If enabled, the particles will be spawned with random rotations.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.rndVelocity">
<summary>
<para>A random speed along X, Y, and Z that is added to the velocity.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.useWorldSpace">
<summary>
<para>If enabled, the particles don't move when the emitter moves. If false, when you move the emitter, the particles follow it around.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleEmitter.worldVelocity">
<summary>
<para>The starting speed of particles in world space, along X, Y, and Z.</para>
</summary>
</member>
<member name="M:UnityEngine.ParticleEmitter.ClearParticles">
<summary>
<para>Removes all particles from the particle emitter.</para>
</summary>
</member>
<member name="M:UnityEngine.ParticleEmitter.Emit">
<summary>
<para>Emit a number of particles.</para>
</summary>
</member>
<member name="M:UnityEngine.ParticleEmitter.Emit(System.Int32)">
<summary>
<para>Emit count particles immediately.</para>
</summary>
<param name="count"></param>
</member>
<member name="M:UnityEngine.ParticleEmitter.Emit(UnityEngine.Vector3,UnityEngine.Vector3,System.Single,System.Single,UnityEngine.Color)">
<summary>
<para>Emit a single particle with given parameters.</para>
</summary>
<param name="pos">The position of the particle.</param>
<param name="velocity">The velocity of the particle.</param>
<param name="size">The size of the particle.</param>
<param name="energy">The remaining lifetime of the particle.</param>
<param name="color">The color of the particle.</param>
</member>
<member name="M:UnityEngine.ParticleEmitter.Emit(UnityEngine.Vector3,UnityEngine.Vector3,System.Single,System.Single,UnityEngine.Color,System.Single,System.Single)">
<summary>
<para></para>
</summary>
<param name="rotation">The initial rotation of the particle in degrees.</param>
<param name="angularVelocity">The angular velocity of the particle in degrees per second.</param>
<param name="pos"></param>
<param name="velocity"></param>
<param name="size"></param>
<param name="energy"></param>
<param name="color"></param>
</member>
<member name="M:UnityEngine.ParticleEmitter.Simulate(System.Single)">
<summary>
<para>Advance particle simulation by given time.</para>
</summary>
<param name="deltaTime"></param>
</member>
<member name="T:UnityEngine.ParticleRenderer">
<summary>
<para>(Legacy Particles) Renders particles on to the screen.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.cameraVelocityScale">
<summary>
<para>How much are the particles strected depending on the Camera's speed.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.lengthScale">
<summary>
<para>How much are the particles stretched in their direction of motion.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.maxParticleSize">
<summary>
<para>Clamp the maximum particle size.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.particleRenderMode">
<summary>
<para>How particles are drawn.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.uvAnimationCycles">
<summary>
<para>Set uv animation cycles.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.uvAnimationXTile">
<summary>
<para>Set horizontal tiling count.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.uvAnimationYTile">
<summary>
<para>Set vertical tiling count.</para>
</summary>
</member>
<member name="P:UnityEngine.ParticleRenderer.velocityScale">
<summary>
<para>How much are the particles strectched depending on "how fast they move".</para>
</summary>
</member>
<member name="T:UnityEngine.ParticleRenderMode">
<summary>
<para>The rendering mode for legacy particles.</para>
</summary>
</member>
<member name="F:UnityEngine.ParticleRenderMode.Billboard">
<summary>
<para>Render the particles as billboards facing the player. (Default)</para>
</summary>
</member>
<member name="F:UnityEngine.ParticleRenderMode.HorizontalBillboard">
<summary>
<para>Render the particles as billboards always facing up along the y-Axis.</para>
</summary>
</member>
<member name="F:UnityEngine.ParticleRenderMode.SortedBillboard">
<summary>
<para>Sort the particles back-to-front and render as billboards.</para>
</summary>
</member>
<member name="F:UnityEngine.ParticleRenderMode.Stretch">
<summary>
<para>Stretch particles in the direction of motion.</para>
</summary>
</member>
<member name="F:UnityEngine.ParticleRenderMode.VerticalBillboard">
<summary>
<para>Render the particles as billboards always facing the player, but not pitching along the x-Axis.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.PerformanceReportingModule</name>
</assembly>
<member name="T:UnityEngine.Analytics.PerformanceReporting">
<summary>
<para>Unity Performace provides insight into your game performace.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.PerformanceReporting.enabled">
<summary>
<para>Controls whether the Performance Reporting service is enabled at runtime.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.ScreenCaptureModule</name>
</assembly>
<member name="T:UnityEngine.ScreenCapture">
<summary>
<para>Functionality to take Screenshots.</para>
</summary>
</member>
<member name="M:UnityEngine.ScreenCapture.CaptureScreenshot(System.String,System.Int32)">
<summary>
<para>Captures a screenshot at path filename as a PNG file.</para>
</summary>
<param name="filename">Pathname to save the screenshot file to.</param>
<param name="superSize">Factor by which to increase resolution.</param>
</member>
<member name="M:UnityEngine.ScreenCapture.CaptureScreenshotAsTexture(System.Int32)">
<summary>
<para>Captures a screenshot of the game view into a Texture2D object.</para>
</summary>
<param name="superSize">Factor by which to increase resolution.</param>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.SharedInternalsModule</name>
</assembly>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.SpriteMaskModule</name>
</assembly>
<member name="T:UnityEngine.SpriteMask">
<summary>
<para>A component for masking Sprites and Particles.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.alphaCutoff">
<summary>
<para>The minimum alpha value used by the mask to select the area of influence defined over the mask's sprite.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.backSortingLayerID">
<summary>
<para>Unique ID of the sorting layer defining the end of the custom range.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.backSortingOrder">
<summary>
<para>Order within the back sorting layer defining the end of the custom range.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.frontSortingLayerID">
<summary>
<para>Unique ID of the sorting layer defining the start of the custom range.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.frontSortingOrder">
<summary>
<para>Order within the front sorting layer defining the start of the custom range.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.isCustomRangeActive">
<summary>
<para>Mask sprites from front to back sorting values only.</para>
</summary>
</member>
<member name="P:UnityEngine.SpriteMask.sprite">
<summary>
<para>The Sprite used to define the mask.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.SpriteShapeModule</name>
</assembly>
<member name="T:UnityEngine.Experimental.U2D.AngleRangeInfo">
<summary>
<para>Describes the information about the edge and how to tessellate it.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.AngleRangeInfo.end">
<summary>
<para>The maximum angle to be considered within this range.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.AngleRangeInfo.order">
<summary>
<para>The render order of the edges that belong in this range.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.AngleRangeInfo.sprites">
<summary>
<para>The list of Sprites that are associated with this range.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.AngleRangeInfo.start">
<summary>
<para>The minimum angle to be considered within this range.</para>
</summary>
</member>
<member name="T:UnityEngine.Experimental.U2D.ShapeControlPoint">
<summary>
<para>Data that describes the important points of the shape.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.ShapeControlPoint.leftTangent">
<summary>
<para>The position of the left tangent in local space.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.ShapeControlPoint.mode">
<summary>
<para>The various modes of the tangent handles. They could be continuous or broken.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.ShapeControlPoint.position">
<summary>
<para>The position of this point in the object's local space.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.ShapeControlPoint.rightTangent">
<summary>
<para>The position of the right tangent point in the local space.</para>
</summary>
</member>
<member name="T:UnityEngine.Experimental.U2D.SpriteShapeMetaData">
<summary>
<para>Additional data about the shape's control point. This is useful during tessellation of the shape.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeMetaData.bevelCutoff">
<summary>
<para>The threshold of the angle that decides if it should be tessellated as a curve or a corner.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeMetaData.bevelSize">
<summary>
<para>The radius of the curve to be tessellated.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeMetaData.corner">
<summary>
<para>True will indicate that this point should be tessellated as a corner or a continuous line otherwise.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeMetaData.height">
<summary>
<para>The height of the tessellated edge.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeMetaData.spriteIndex">
<summary>
<para>The Sprite to be used for a particular edge.</para>
</summary>
</member>
<member name="T:UnityEngine.Experimental.U2D.SpriteShapeParameters">
<summary>
<para>Input parameters for the SpriteShape tessellator.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.adaptiveUV">
<summary>
<para>If enabled, the tessellator will adapt the size of the quads based on the height of the edge.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.angleThreshold">
<summary>
<para>The threshold of the angle that indicates whether it is a corner or not.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.bevelCutoff">
<summary>
<para>The threshold of the angle that decides if it should be tessellated as a curve or a corner.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.bevelSize">
<summary>
<para>The radius of the curve to be tessellated.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.borderPivot">
<summary>
<para>The local displacement of the Sprite when tessellated.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.carpet">
<summary>
<para>If true, the Shape will be tessellated as a closed form.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.fillScale">
<summary>
<para>The scale to be used to calculate the UVs of the fill texture.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.fillTexture">
<summary>
<para>The texture to be used for the fill of the SpriteShape.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.smartSprite">
<summary>
<para>If enabled the tessellator will consider creating corners based on the various input parameters.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.splineDetail">
<summary>
<para>The tessellation quality of the input Spline that determines the complexity of the mesh.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.spriteBorders">
<summary>
<para>The borders to be used for calculating the uv of the edges based on the border info found in Sprites.</para>
</summary>
</member>
<member name="F:UnityEngine.Experimental.U2D.SpriteShapeParameters.transform">
<summary>
<para>The world space transform of the game object used for calculating the UVs of the fill texture.</para>
</summary>
</member>
<member name="T:UnityEngine.Experimental.U2D.SpriteShapeUtility">
<summary>
<para>A static class that helps tessellate a SpriteShape mesh.</para>
</summary>
</member>
<member name="M:UnityEngine.Experimental.U2D.SpriteShapeUtility.Generate(UnityEngine.Mesh,UnityEngine.Experimental.U2D.SpriteShapeParameters,UnityEngine.Experimental.U2D.ShapeControlPoint[],UnityEngine.Experimental.U2D.SpriteShapeMetaData[],UnityEngine.Experimental.U2D.AngleRangeInfo[],UnityEngine.Sprite[],UnityEngine.Sprite[])">
<summary>
<para>Generate a mesh based on input parameters.</para>
</summary>
<param name="mesh">The output mesh.</param>
<param name="shapeParams">Input parameters for the SpriteShape tessellator.</param>
<param name="points">A list of control points that describes the shape.</param>
<param name="metaData">Additional data about the shape's control point. This is useful during tessellation of the shape.</param>
<param name="sprites">The list of Sprites that could be used for the edges.</param>
<param name="corners">The list of Sprites that could be used for the corners.</param>
<param name="angleRange">A paramters that determins how to tessellate each of the edge.</param>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.StyleSheetsModule</name>
</assembly>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.TerrainModule</name>
</assembly>
<member name="T:UnityEngine.DetailPrototype">
<summary>
<para>Detail prototype used by the Terrain GameObject.</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.bendFactor">
<summary>
<para>Bend factor of the detailPrototype.</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.dryColor">
<summary>
<para>Color when the DetailPrototypes are "dry".</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.healthyColor">
<summary>
<para>Color when the DetailPrototypes are "healthy".</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.maxHeight">
<summary>
<para>Maximum height of the grass billboards (if render mode is GrassBillboard).</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.maxWidth">
<summary>
<para>Maximum width of the grass billboards (if render mode is GrassBillboard).</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.minHeight">
<summary>
<para>Minimum height of the grass billboards (if render mode is GrassBillboard).</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.minWidth">
<summary>
<para>Minimum width of the grass billboards (if render mode is GrassBillboard).</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.noiseSpread">
<summary>
<para>How spread out is the noise for the DetailPrototype.</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.prototype">
<summary>
<para>GameObject used by the DetailPrototype.</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.prototypeTexture">
<summary>
<para>Texture used by the DetailPrototype.</para>
</summary>
</member>
<member name="P:UnityEngine.DetailPrototype.renderMode">
<summary>
<para>Render mode for the DetailPrototype.</para>
</summary>
</member>
<member name="T:UnityEngine.DetailRenderMode">
<summary>
<para>Render mode for detail prototypes.</para>
</summary>
</member>
<member name="F:UnityEngine.DetailRenderMode.Grass">
<summary>
<para>The detail prototype will use the grass shader.</para>
</summary>
</member>
<member name="F:UnityEngine.DetailRenderMode.GrassBillboard">
<summary>
<para>The detail prototype will be rendered as billboards that are always facing the camera.</para>
</summary>
</member>
<member name="F:UnityEngine.DetailRenderMode.VertexLit">
<summary>
<para>Will show the prototype using diffuse shading.</para>
</summary>
</member>
<member name="T:UnityEngine.SplatPrototype">
<summary>
<para>A Splat prototype is just a texture that is used by the TerrainData.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.metallic">
<summary>
<para>The metallic value of the splat layer.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.normalMap">
<summary>
<para>Normal map of the splat applied to the Terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.smoothness">
<summary>
<para>The smoothness value of the splat layer when the main texture has no alpha channel.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.texture">
<summary>
<para>Texture of the splat applied to the Terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.tileOffset">
<summary>
<para>Offset of the tile texture of the SplatPrototype.</para>
</summary>
</member>
<member name="P:UnityEngine.SplatPrototype.tileSize">
<summary>
<para>Size of the tile used in the texture of the SplatPrototype.</para>
</summary>
</member>
<member name="T:UnityEngine.Terrain">
<summary>
<para>The Terrain component renders the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.activeTerrain">
<summary>
<para>The active terrain. This is a convenience function to get to the main terrain in the scene.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.activeTerrains">
<summary>
<para>The active terrains in the scene.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.basemapDistance">
<summary>
<para>Heightmap patches beyond basemap distance will use a precomputed low res basemap.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.castShadows">
<summary>
<para>Should terrain cast shadows?.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.collectDetailPatches">
<summary>
<para>Collect detail patches from memory.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.detailObjectDensity">
<summary>
<para>Density of detail objects.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.detailObjectDistance">
<summary>
<para>Detail objects will be displayed up to this distance.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.drawHeightmap">
<summary>
<para>Specify if terrain heightmap should be drawn.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.drawTreesAndFoliage">
<summary>
<para>Specify if terrain trees and details should be drawn.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.editorRenderFlags">
<summary>
<para>Controls what part of the terrain should be rendered.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.freeUnusedRenderingResources">
<summary>
<para>Whether some per-camera rendering resources for the terrain should be freed after not being used for some frames.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.heightmapMaximumLOD">
<summary>
<para>Lets you essentially lower the heightmap resolution used for rendering.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.heightmapPixelError">
<summary>
<para>An approximation of how many pixels the terrain will pop in the worst case when switching lod.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.legacyShininess">
<summary>
<para>The shininess value of the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.legacySpecular">
<summary>
<para>The specular color of the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.lightmapIndex">
<summary>
<para>The index of the baked lightmap applied to this terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.lightmapScaleOffset">
<summary>
<para>The UV scale &amp; offset used for a baked lightmap.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.materialTemplate">
<summary>
<para>The custom material used to render the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.materialType">
<summary>
<para>The type of the material used to render the terrain. Could be one of the built-in types or custom. See Terrain.MaterialType.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.patchBoundsMultiplier">
<summary>
<para>Set the terrain bounding box scale.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.realtimeLightmapIndex">
<summary>
<para>The index of the realtime lightmap applied to this terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.realtimeLightmapScaleOffset">
<summary>
<para>The UV scale &amp; offset used for a realtime lightmap.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.reflectionProbeUsage">
<summary>
<para>How reflection probes are used for terrain. See Rendering.ReflectionProbeUsage.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.terrainData">
<summary>
<para>The Terrain Data that stores heightmaps, terrain textures, detail meshes and trees.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.treeBillboardDistance">
<summary>
<para>Distance from the camera where trees will be rendered as billboards only.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.treeCrossFadeLength">
<summary>
<para>Total distance delta that trees will use to transition from billboard orientation to mesh orientation.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.treeDistance">
<summary>
<para>The maximum distance at which trees are rendered.</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.treeLODBiasMultiplier">
<summary>
<para>The multiplier to the current LOD bias used for rendering LOD trees (i.e. SpeedTree trees).</para>
</summary>
</member>
<member name="P:UnityEngine.Terrain.treeMaximumFullLODCount">
<summary>
<para>Maximum number of trees rendered at full LOD.</para>
</summary>
</member>
<member name="M:UnityEngine.Terrain.AddTreeInstance(UnityEngine.TreeInstance)">
<summary>
<para>Adds a tree instance to the terrain.</para>
</summary>
<param name="instance"></param>
</member>
<member name="M:UnityEngine.Terrain.ApplyDelayedHeightmapModification">
<summary>
<para>Update the terrain's LOD and vegetation information after making changes with TerrainData.SetHeightsDelayLOD.</para>
</summary>
</member>
<member name="M:UnityEngine.Terrain.CreateTerrainGameObject(UnityEngine.TerrainData)">
<summary>
<para>Creates a Terrain including collider from TerrainData.</para>
</summary>
<param name="assignTerrain"></param>
</member>
<member name="M:UnityEngine.Terrain.Flush">
<summary>
<para>Flushes any change done in the terrain so it takes effect.</para>
</summary>
</member>
<member name="M:UnityEngine.Terrain.GetClosestReflectionProbes(System.Collections.Generic.List`1&lt;UnityEngine.Rendering.ReflectionProbeBlendInfo&gt;)">
<summary>
<para>Fills the list with reflection probes whose AABB intersects with terrain's AABB. Their weights are also provided. Weight shows how much influence the probe has on the terrain, and is used when the blending between multiple reflection probes occurs.</para>
</summary>
<param name="result">[in / out] A list to hold the returned reflection probes and their weights. See ReflectionProbeBlendInfo.</param>
</member>
<member name="M:UnityEngine.Terrain.GetPosition">
<summary>
<para>Get the position of the terrain.</para>
</summary>
</member>
<member name="M:UnityEngine.Terrain.GetSplatMaterialPropertyBlock(UnityEngine.MaterialPropertyBlock)">
<summary>
<para>Get the previously set splat material properties by copying to the dest MaterialPropertyBlock object.</para>
</summary>
<param name="dest"></param>
</member>
<member name="T:UnityEngine.Terrain.MaterialType">
<summary>
<para>The type of the material used to render a terrain object. Could be one of the built-in types or custom.</para>
</summary>
</member>
<member name="F:UnityEngine.Terrain.MaterialType.BuiltInLegacyDiffuse">
<summary>
<para>A built-in material that uses the legacy Lambert (diffuse) lighting model and has optional normal map support.</para>
</summary>
</member>
<member name="F:UnityEngine.Terrain.MaterialType.BuiltInLegacySpecular">
<summary>
<para>A built-in material that uses the legacy BlinnPhong (specular) lighting model and has optional normal map support.</para>
</summary>
</member>
<member name="F:UnityEngine.Terrain.MaterialType.BuiltInStandard">
<summary>
<para>A built-in material that uses the standard physically-based lighting model. Inputs supported: smoothness, metallic / specular, normal.</para>
</summary>
</member>
<member name="F:UnityEngine.Terrain.MaterialType.Custom">
<summary>
<para>Use a custom material given by Terrain.materialTemplate.</para>
</summary>
</member>
<member name="M:UnityEngine.Terrain.SampleHeight(UnityEngine.Vector3)">
<summary>
<para>Samples the height at the given position defined in world space, relative to the terrain space.</para>
</summary>
<param name="worldPosition"></param>
</member>
<member name="M:UnityEngine.Terrain.SetNeighbors(UnityEngine.Terrain,UnityEngine.Terrain,UnityEngine.Terrain,UnityEngine.Terrain)">
<summary>
<para>Lets you setup the connection between neighboring Terrains.</para>
</summary>
<param name="left"></param>
<param name="top"></param>
<param name="right"></param>
<param name="bottom"></param>
</member>
<member name="M:UnityEngine.Terrain.SetSplatMaterialPropertyBlock(UnityEngine.MaterialPropertyBlock)">
<summary>
<para>Set the additional material properties when rendering the terrain heightmap using the splat material.</para>
</summary>
<param name="properties"></param>
</member>
<member name="T:UnityEngine.TerrainChangedFlags">
<summary>
<para>Indicate the types of changes to the terrain in OnTerrainChanged callback.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.DelayedHeightmapUpdate">
<summary>
<para>Indicates a change to the heightmap data without computing LOD.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.FlushEverythingImmediately">
<summary>
<para>Indicates that a change was made to the terrain that was so significant that the internal rendering data need to be flushed and recreated.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.Heightmap">
<summary>
<para>Indicates a change to the heightmap data.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.RemoveDirtyDetailsImmediately">
<summary>
<para>Indicates a change to the detail data.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.TreeInstances">
<summary>
<para>Indicates a change to the tree data.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainChangedFlags.WillBeDestroyed">
<summary>
<para>Indicates that the TerrainData object is about to be destroyed.</para>
</summary>
</member>
<member name="T:UnityEngine.TerrainData">
<summary>
<para>The TerrainData class stores heightmaps, detail mesh positions, tree instances, and terrain texture alpha maps.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.alphamapHeight">
<summary>
<para>Height of the alpha map.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.alphamapLayers">
<summary>
<para>Number of alpha map layers.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.alphamapResolution">
<summary>
<para>Resolution of the alpha map.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.alphamapTextures">
<summary>
<para>Alpha map textures used by the Terrain. Used by Terrain Inspector for undo.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.alphamapWidth">
<summary>
<para>Width of the alpha map.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.baseMapResolution">
<summary>
<para>Resolution of the base map used for rendering far patches on the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.bounds">
<summary>
<para>The local bounding box of the TerrainData object.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.detailHeight">
<summary>
<para>Detail height of the TerrainData.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.detailPrototypes">
<summary>
<para>Contains the detail texture/meshes that the terrain has.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.detailResolution">
<summary>
<para>Detail Resolution of the TerrainData.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.detailWidth">
<summary>
<para>Detail width of the TerrainData.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.heightmapHeight">
<summary>
<para>Height of the terrain in samples (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.heightmapResolution">
<summary>
<para>Resolution of the heightmap.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.heightmapScale">
<summary>
<para>The size of each heightmap sample.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.heightmapWidth">
<summary>
<para>Width of the terrain in samples (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.size">
<summary>
<para>The total size in world units of the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.splatPrototypes">
<summary>
<para>Splat texture used by the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.thickness">
<summary>
<para>The thickness of the terrain used for collision detection.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.treeInstanceCount">
<summary>
<para>Returns the number of tree instances.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.treeInstances">
<summary>
<para>Contains the current trees placed in the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.treePrototypes">
<summary>
<para>The list of tree prototypes this are the ones available in the inspector.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.wavingGrassAmount">
<summary>
<para>Amount of waving grass in the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.wavingGrassSpeed">
<summary>
<para>Speed of the waving grass.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.wavingGrassStrength">
<summary>
<para>Strength of the waving grass in the terrain.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainData.wavingGrassTint">
<summary>
<para>Color of the waving grass that the terrain has.</para>
</summary>
</member>
<member name="M:UnityEngine.TerrainData.GetAlphamaps(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Returns the alpha map at a position x, y given a width and height.</para>
</summary>
<param name="x">The x offset to read from.</param>
<param name="y">The y offset to read from.</param>
<param name="width">The width of the alpha map area to read.</param>
<param name="height">The height of the alpha map area to read.</param>
<returns>
<para>A 3D array of floats, where the 3rd dimension represents the mixing weight of each splatmap at each x,y coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.TerrainData.GetDetailLayer(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Returns a 2D array of the detail object density in the specific location.</para>
</summary>
<param name="xBase"></param>
<param name="yBase"></param>
<param name="width"></param>
<param name="height"></param>
<param name="layer"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetHeight(System.Int32,System.Int32)">
<summary>
<para>Gets the height at a certain point x,y.</para>
</summary>
<param name="x"></param>
<param name="y"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetHeights(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Get an array of heightmap samples.</para>
</summary>
<param name="xBase">First x index of heightmap samples to retrieve.</param>
<param name="yBase">First y index of heightmap samples to retrieve.</param>
<param name="width">Number of samples to retrieve along the heightmap's x axis.</param>
<param name="height">Number of samples to retrieve along the heightmap's y axis.</param>
</member>
<member name="M:UnityEngine.TerrainData.GetInterpolatedHeight(System.Single,System.Single)">
<summary>
<para>Gets an interpolated height at a point x,y.</para>
</summary>
<param name="x"></param>
<param name="y"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetInterpolatedNormal(System.Single,System.Single)">
<summary>
<para>Get an interpolated normal at a given location.</para>
</summary>
<param name="x"></param>
<param name="y"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetSteepness(System.Single,System.Single)">
<summary>
<para>Gets the gradient of the terrain at point (x,y).</para>
</summary>
<param name="x"></param>
<param name="y"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetSupportedLayers(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Returns an array of all supported detail layer indices in the area.</para>
</summary>
<param name="xBase"></param>
<param name="yBase"></param>
<param name="totalWidth"></param>
<param name="totalHeight"></param>
</member>
<member name="M:UnityEngine.TerrainData.GetTreeInstance(System.Int32)">
<summary>
<para>Get the tree instance at the specified index. It is used as a faster version of treeInstances[index] as this function doesn't create the entire tree instances array.</para>
</summary>
<param name="index">The index of the tree instance.</param>
</member>
<member name="M:UnityEngine.TerrainData.RefreshPrototypes">
<summary>
<para>Reloads all the values of the available prototypes (ie, detail mesh assets) in the TerrainData Object.</para>
</summary>
</member>
<member name="M:UnityEngine.TerrainData.SetAlphamaps(System.Int32,System.Int32,System.Single[,,])">
<summary>
<para>Assign all splat values in the given map area.</para>
</summary>
<param name="x"></param>
<param name="y"></param>
<param name="map"></param>
</member>
<member name="M:UnityEngine.TerrainData.SetDetailLayer(System.Int32,System.Int32,System.Int32,System.Int32[,])">
<summary>
<para>Sets the detail layer density map.</para>
</summary>
<param name="xBase"></param>
<param name="yBase"></param>
<param name="layer"></param>
<param name="details"></param>
</member>
<member name="M:UnityEngine.TerrainData.SetDetailResolution(System.Int32,System.Int32)">
<summary>
<para>Set the resolution of the detail map.</para>
</summary>
<param name="detailResolution">Specifies the number of pixels in the detail resolution map. A larger detailResolution, leads to more accurate detail object painting.</param>
<param name="resolutionPerPatch">Specifies the size in pixels of each individually rendered detail patch. A larger number reduces draw calls, but might increase triangle count since detail patches are culled on a per batch basis. A recommended value is 16. If you use a very large detail object distance and your grass is very sparse, it makes sense to increase the value.</param>
</member>
<member name="M:UnityEngine.TerrainData.SetHeights(System.Int32,System.Int32,System.Single[,])">
<summary>
<para>Set an array of heightmap samples.</para>
</summary>
<param name="xBase">First x index of heightmap samples to set.</param>
<param name="yBase">First y index of heightmap samples to set.</param>
<param name="heights">Array of heightmap samples to set (values range from 0 to 1, array indexed as [y,x]).</param>
</member>
<member name="M:UnityEngine.TerrainData.SetHeightsDelayLOD(System.Int32,System.Int32,System.Single[,])">
<summary>
<para>Set an array of heightmap samples.</para>
</summary>
<param name="xBase">First x index of heightmap samples to set.</param>
<param name="yBase">First y index of heightmap samples to set.</param>
<param name="heights">Array of heightmap samples to set (values range from 0 to 1, array indexed as [y,x]).</param>
</member>
<member name="M:UnityEngine.TerrainData.SetTreeInstance(System.Int32,UnityEngine.TreeInstance)">
<summary>
<para>Set the tree instance with new parameters at the specified index. However, TreeInstance.prototypeIndex and TreeInstance.position can not be changed otherwise an ArgumentException will be thrown.</para>
</summary>
<param name="index">The index of the tree instance.</param>
<param name="instance">The new TreeInstance value.</param>
</member>
<member name="T:UnityEngine.TerrainExtensions">
<summary>
<para>Extension methods to the Terrain class, used only for the UpdateGIMaterials method used by the Global Illumination System.</para>
</summary>
</member>
<member name="M:UnityEngine.TerrainExtensions.UpdateGIMaterials(UnityEngine.Terrain)">
<summary>
<para>Schedules an update of the albedo and emissive Textures of a system that contains the Terrain.</para>
</summary>
<param name="terrain"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
</member>
<member name="M:UnityEngine.TerrainExtensions.UpdateGIMaterials(UnityEngine.Terrain,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Schedules an update of the albedo and emissive Textures of a system that contains the Terrain.</para>
</summary>
<param name="terrain"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
</member>
<member name="T:UnityEngine.TerrainRenderFlags">
<summary>
<para>Enum provding terrain rendering options.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainRenderFlags.All">
<summary>
<para>Render all options.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainRenderFlags.Details">
<summary>
<para>Render terrain details.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainRenderFlags.Heightmap">
<summary>
<para>Render heightmap.</para>
</summary>
</member>
<member name="F:UnityEngine.TerrainRenderFlags.Trees">
<summary>
<para>Render trees.</para>
</summary>
</member>
<member name="T:UnityEngine.Tree">
<summary>
<para>Tree Component for the tree creator.</para>
</summary>
</member>
<member name="P:UnityEngine.Tree.data">
<summary>
<para>Data asociated to the Tree.</para>
</summary>
</member>
<member name="P:UnityEngine.Tree.hasSpeedTreeWind">
<summary>
<para>Tells if there is wind data exported from SpeedTree are saved on this component.</para>
</summary>
</member>
<member name="T:UnityEngine.TreeInstance">
<summary>
<para>Contains information about a tree placed in the Terrain game object.</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.color">
<summary>
<para>Color of this instance.</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.heightScale">
<summary>
<para>Height scale of this instance (compared to the prototype's size).</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.lightmapColor">
<summary>
<para>Lightmap color calculated for this instance.</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.position">
<summary>
<para>Position of the tree.</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.prototypeIndex">
<summary>
<para>Index of this instance in the TerrainData.treePrototypes array.</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.rotation">
<summary>
<para>Read-only.
Rotation of the tree on X-Z plane (in radians).</para>
</summary>
</member>
<member name="F:UnityEngine.TreeInstance.widthScale">
<summary>
<para>Width scale of this instance (compared to the prototype's size).</para>
</summary>
</member>
<member name="T:UnityEngine.TreePrototype">
<summary>
<para>Simple class that contains a pointer to a tree prototype.</para>
</summary>
</member>
<member name="P:UnityEngine.TreePrototype.bendFactor">
<summary>
<para>Bend factor of the tree prototype.</para>
</summary>
</member>
<member name="P:UnityEngine.TreePrototype.prefab">
<summary>
<para>Retrieves the actual GameObect used by the tree.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.TerrainPhysicsModule</name>
</assembly>
<member name="T:UnityEngine.TerrainCollider">
<summary>
<para>A heightmap based collider.</para>
</summary>
</member>
<member name="P:UnityEngine.TerrainCollider.terrainData">
<summary>
<para>The terrain that stores the heightmap.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.TextRenderingModule</name>
</assembly>
<member name="T:UnityEngine.CharacterInfo">
<summary>
<para>Specification for how to render a character from the font texture. See Font.characterInfo.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.advance">
<summary>
<para>The horizontal distance from the origin of this character to the origin of the next character.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.bearing">
<summary>
<para>The horizontal distance from the origin of this glyph to the begining of the glyph image.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.flipped">
<summary>
<para>Is the character flipped?</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.glyphHeight">
<summary>
<para>The height of the glyph image.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.glyphWidth">
<summary>
<para>The width of the glyph image.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.index">
<summary>
<para>Unicode value of the character.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.maxX">
<summary>
<para>The maximum extend of the glyph image in the x-axis.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.maxY">
<summary>
<para>The maximum extend of the glyph image in the y-axis.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.minX">
<summary>
<para>The minium extend of the glyph image in the x-axis.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.minY">
<summary>
<para>The minimum extend of the glyph image in the y-axis.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.size">
<summary>
<para>The size of the character or 0 if it is the default font size.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.style">
<summary>
<para>The style of the character.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.uv">
<summary>
<para>UV coordinates for the character in the texture.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.uvBottomLeft">
<summary>
<para>The uv coordinate matching the bottom left of the glyph image in the font texture.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.uvBottomRight">
<summary>
<para>The uv coordinate matching the bottom right of the glyph image in the font texture.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.uvTopLeft">
<summary>
<para>The uv coordinate matching the top left of the glyph image in the font texture.</para>
</summary>
</member>
<member name="P:UnityEngine.CharacterInfo.uvTopRight">
<summary>
<para>The uv coordinate matching the top right of the glyph image in the font texture.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.vert">
<summary>
<para>Screen coordinates for the character in generated text meshes.</para>
</summary>
</member>
<member name="F:UnityEngine.CharacterInfo.width">
<summary>
<para>How far to advance between the beginning of this charcater and the next.</para>
</summary>
</member>
<member name="T:UnityEngine.Font">
<summary>
<para>Script interface for.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.ascent">
<summary>
<para>The ascent of the font.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.characterInfo">
<summary>
<para>Access an array of all characters contained in the font texture.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.dynamic">
<summary>
<para>Is the font a dynamic font.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.fontSize">
<summary>
<para>The default size of the font.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.lineHeight">
<summary>
<para>The line height of the font.</para>
</summary>
</member>
<member name="P:UnityEngine.Font.material">
<summary>
<para>The material used for the font display.</para>
</summary>
</member>
<member name="?:UnityEngine.Font.textureRebuilt(System.Action`1&lt;UnityEngine.Font&gt;)">
<summary>
<para>Set a function to be called when the dynamic font texture is rebuilt.</para>
</summary>
<param name="value"></param>
</member>
<member name="M:UnityEngine.Font.CreateDynamicFontFromOSFont(System.String,System.Int32)">
<summary>
<para>Creates a Font object which lets you render a font installed on the user machine.</para>
</summary>
<param name="fontname">The name of the OS font to use for this font object.</param>
<param name="size">The default character size of the generated font.</param>
<param name="fontnames">Am array of names of OS fonts to use for this font object. When rendering characters using this font object, the first font which is installed on the machine, which contains the requested character will be used.</param>
<returns>
<para>The generate Font object.</para>
</returns>
</member>
<member name="M:UnityEngine.Font.CreateDynamicFontFromOSFont(System.String[],System.Int32)">
<summary>
<para>Creates a Font object which lets you render a font installed on the user machine.</para>
</summary>
<param name="fontname">The name of the OS font to use for this font object.</param>
<param name="size">The default character size of the generated font.</param>
<param name="fontnames">Am array of names of OS fonts to use for this font object. When rendering characters using this font object, the first font which is installed on the machine, which contains the requested character will be used.</param>
<returns>
<para>The generate Font object.</para>
</returns>
</member>
<member name="M:UnityEngine.Font.#ctor">
<summary>
<para>Create a new Font.</para>
</summary>
<param name="name">The name of the created Font object.</param>
</member>
<member name="M:UnityEngine.Font.#ctor(System.String)">
<summary>
<para>Create a new Font.</para>
</summary>
<param name="name">The name of the created Font object.</param>
</member>
<member name="M:UnityEngine.Font.GetCharacterInfo(System.Char,UnityEngine.CharacterInfo&amp;)">
<summary>
<para>Get rendering info for a specific character.</para>
</summary>
<param name="ch">The character you need rendering information for.</param>
<param name="info">Returns the CharacterInfo struct with the rendering information for the character (if available).</param>
<param name="size">The size of the character (default value of zero will use font default size).</param>
<param name="style">The style of the character.</param>
</member>
<member name="M:UnityEngine.Font.GetCharacterInfo(System.Char,UnityEngine.CharacterInfo&amp;,System.Int32)">
<summary>
<para>Get rendering info for a specific character.</para>
</summary>
<param name="ch">The character you need rendering information for.</param>
<param name="info">Returns the CharacterInfo struct with the rendering information for the character (if available).</param>
<param name="size">The size of the character (default value of zero will use font default size).</param>
<param name="style">The style of the character.</param>
</member>
<member name="M:UnityEngine.Font.GetCharacterInfo(System.Char,UnityEngine.CharacterInfo&amp;,System.Int32,UnityEngine.FontStyle)">
<summary>
<para>Get rendering info for a specific character.</para>
</summary>
<param name="ch">The character you need rendering information for.</param>
<param name="info">Returns the CharacterInfo struct with the rendering information for the character (if available).</param>
<param name="size">The size of the character (default value of zero will use font default size).</param>
<param name="style">The style of the character.</param>
</member>
<member name="M:UnityEngine.Font.GetMaxVertsForString(System.String)">
<summary>
<para>Returns the maximum number of verts that the text generator may return for a given string.</para>
</summary>
<param name="str">Input string.</param>
</member>
<member name="M:UnityEngine.Font.GetOSInstalledFontNames">
<summary>
<para>Get names of fonts installed on the machine.</para>
</summary>
<returns>
<para>An array of the names of all fonts installed on the machine.</para>
</returns>
</member>
<member name="M:UnityEngine.Font.HasCharacter(System.Char)">
<summary>
<para>Does this font have a specific character?</para>
</summary>
<param name="c">The character to check for.</param>
<returns>
<para>Whether or not the font has the character specified.</para>
</returns>
</member>
<member name="M:UnityEngine.Font.RequestCharactersInTexture(System.String,System.Int32,UnityEngine.FontStyle)">
<summary>
<para>Request characters to be added to the font texture (dynamic fonts only).</para>
</summary>
<param name="characters">The characters which are needed to be in the font texture.</param>
<param name="size">The size of the requested characters (the default value of zero will use the font's default size).</param>
<param name="style">The style of the requested characters.</param>
</member>
<member name="T:UnityEngine.FontStyle">
<summary>
<para>Font Style applied to GUI Texts, Text Meshes or GUIStyles.</para>
</summary>
</member>
<member name="F:UnityEngine.FontStyle.Bold">
<summary>
<para>Bold style applied to your texts.</para>
</summary>
</member>
<member name="F:UnityEngine.FontStyle.BoldAndItalic">
<summary>
<para>Bold and Italic styles applied to your texts.</para>
</summary>
</member>
<member name="F:UnityEngine.FontStyle.Italic">
<summary>
<para>Italic style applied to your texts.</para>
</summary>
</member>
<member name="F:UnityEngine.FontStyle.Normal">
<summary>
<para>No special style is applied.</para>
</summary>
</member>
<member name="T:UnityEngine.GUIText">
<summary>
<para>A text string displayed in a GUI.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.alignment">
<summary>
<para>The alignment of the text.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.anchor">
<summary>
<para>The anchor of the text.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.color">
<summary>
<para>The color used to render the text.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.font">
<summary>
<para>The font used for the text.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.fontSize">
<summary>
<para>The font size to use (for dynamic fonts).</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.fontStyle">
<summary>
<para>The font style to use (for dynamic fonts).</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.lineSpacing">
<summary>
<para>The line spacing multiplier.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.material">
<summary>
<para>The Material to use for rendering.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.pixelOffset">
<summary>
<para>The pixel offset of the text.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.richText">
<summary>
<para>Enable HTML-style tags for Text Formatting Markup.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.tabSize">
<summary>
<para>The tab width multiplier.</para>
</summary>
</member>
<member name="P:UnityEngine.GUIText.text">
<summary>
<para>The text to display.</para>
</summary>
</member>
<member name="T:UnityEngine.HorizontalWrapMode">
<summary>
<para>Wrapping modes for text that reaches the horizontal boundary.</para>
</summary>
</member>
<member name="F:UnityEngine.HorizontalWrapMode.Overflow">
<summary>
<para>Text can exceed the horizontal boundary.</para>
</summary>
</member>
<member name="F:UnityEngine.HorizontalWrapMode.Wrap">
<summary>
<para>Text will word-wrap when reaching the horizontal boundary.</para>
</summary>
</member>
<member name="T:UnityEngine.TextAlignment">
<summary>
<para>How multiline text should be aligned.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAlignment.Center">
<summary>
<para>Text lines are centered.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAlignment.Left">
<summary>
<para>Text lines are aligned on the left side.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAlignment.Right">
<summary>
<para>Text lines are aligned on the right side.</para>
</summary>
</member>
<member name="T:UnityEngine.TextAnchor">
<summary>
<para>Where the anchor of the text is placed.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.LowerCenter">
<summary>
<para>Text is anchored in lower side, centered horizontally.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.LowerLeft">
<summary>
<para>Text is anchored in lower left corner.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.LowerRight">
<summary>
<para>Text is anchored in lower right corner.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.MiddleCenter">
<summary>
<para>Text is centered both horizontally and vertically.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.MiddleLeft">
<summary>
<para>Text is anchored in left side, centered vertically.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.MiddleRight">
<summary>
<para>Text is anchored in right side, centered vertically.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.UpperCenter">
<summary>
<para>Text is anchored in upper side, centered horizontally.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.UpperLeft">
<summary>
<para>Text is anchored in upper left corner.</para>
</summary>
</member>
<member name="F:UnityEngine.TextAnchor.UpperRight">
<summary>
<para>Text is anchored in upper right corner.</para>
</summary>
</member>
<member name="T:UnityEngine.TextGenerationSettings">
<summary>
<para>A struct that stores the settings for TextGeneration.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.alignByGeometry">
<summary>
<para>Use the extents of glyph geometry to perform horizontal alignment rather than glyph metrics.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.color">
<summary>
<para>The base color for the text generation.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.font">
<summary>
<para>Font to use for generation.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.fontSize">
<summary>
<para>Font size.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.fontStyle">
<summary>
<para>Font style.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.generateOutOfBounds">
<summary>
<para>Continue to generate characters even if the text runs out of bounds.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.generationExtents">
<summary>
<para>Extents that the generator will attempt to fit the text in.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.horizontalOverflow">
<summary>
<para>What happens to text when it reaches the horizontal generation bounds.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.lineSpacing">
<summary>
<para>The line spacing multiplier.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.pivot">
<summary>
<para>Generated vertices are offset by the pivot.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.resizeTextForBestFit">
<summary>
<para>Should the text be resized to fit the configured bounds?</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.resizeTextMaxSize">
<summary>
<para>Maximum size for resized text.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.resizeTextMinSize">
<summary>
<para>Minimum size for resized text.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.richText">
<summary>
<para>Allow rich text markup in generation.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.scaleFactor">
<summary>
<para>A scale factor for the text. This is useful if the Text is on a Canvas and the canvas is scaled.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.textAnchor">
<summary>
<para>How is the generated text anchored.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.updateBounds">
<summary>
<para>Should the text generator update the bounds from the generated text.</para>
</summary>
</member>
<member name="F:UnityEngine.TextGenerationSettings.verticalOverflow">
<summary>
<para>What happens to text when it reaches the bottom generation bounds.</para>
</summary>
</member>
<member name="T:UnityEngine.TextGenerator">
<summary>
<para>Class that can be used to generate text for rendering.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.characterCount">
<summary>
<para>The number of characters that have been generated.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.characterCountVisible">
<summary>
<para>The number of characters that have been generated and are included in the visible lines.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.characters">
<summary>
<para>Array of generated characters.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.fontSizeUsedForBestFit">
<summary>
<para>The size of the font that was found if using best fit mode.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.lineCount">
<summary>
<para>Number of text lines generated.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.lines">
<summary>
<para>Information about each generated text line.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.rectExtents">
<summary>
<para>Extents of the generated text in rect format.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.vertexCount">
<summary>
<para>Number of vertices generated.</para>
</summary>
</member>
<member name="P:UnityEngine.TextGenerator.verts">
<summary>
<para>Array of generated vertices.</para>
</summary>
</member>
<member name="M:UnityEngine.TextGenerator.#ctor">
<summary>
<para>Create a TextGenerator.</para>
</summary>
<param name="initialCapacity"></param>
</member>
<member name="M:UnityEngine.TextGenerator.#ctor(System.Int32)">
<summary>
<para>Create a TextGenerator.</para>
</summary>
<param name="initialCapacity"></param>
</member>
<member name="M:UnityEngine.TextGenerator.GetCharacters(System.Collections.Generic.List`1&lt;UnityEngine.UICharInfo&gt;)">
<summary>
<para>Populate the given List with UICharInfo.</para>
</summary>
<param name="characters">List to populate.</param>
</member>
<member name="M:UnityEngine.TextGenerator.GetCharactersArray">
<summary>
<para>Returns the current UICharInfo.</para>
</summary>
<returns>
<para>Character information.</para>
</returns>
</member>
<member name="M:UnityEngine.TextGenerator.GetLines(System.Collections.Generic.List`1&lt;UnityEngine.UILineInfo&gt;)">
<summary>
<para>Populate the given list with UILineInfo.</para>
</summary>
<param name="lines">List to populate.</param>
</member>
<member name="M:UnityEngine.TextGenerator.GetLinesArray">
<summary>
<para>Returns the current UILineInfo.</para>
</summary>
<returns>
<para>Line information.</para>
</returns>
</member>
<member name="M:UnityEngine.TextGenerator.GetPreferredHeight(System.String,UnityEngine.TextGenerationSettings)">
<summary>
<para>Given a string and settings, returns the preferred height for a container that would hold this text.</para>
</summary>
<param name="str">Generation text.</param>
<param name="settings">Settings for generation.</param>
<returns>
<para>Preferred height.</para>
</returns>
</member>
<member name="M:UnityEngine.TextGenerator.GetPreferredWidth(System.String,UnityEngine.TextGenerationSettings)">
<summary>
<para>Given a string and settings, returns the preferred width for a container that would hold this text.</para>
</summary>
<param name="str">Generation text.</param>
<param name="settings">Settings for generation.</param>
<returns>
<para>Preferred width.</para>
</returns>
</member>
<member name="M:UnityEngine.TextGenerator.GetVertices(System.Collections.Generic.List`1&lt;UnityEngine.UIVertex&gt;)">
<summary>
<para>Populate the given list with generated Vertices.</para>
</summary>
<param name="vertices">List to populate.</param>
</member>
<member name="M:UnityEngine.TextGenerator.GetVerticesArray">
<summary>
<para>Returns the current UILineInfo.</para>
</summary>
<returns>
<para>Vertices.</para>
</returns>
</member>
<member name="M:UnityEngine.TextGenerator.Invalidate">
<summary>
<para>Mark the text generator as invalid. This will force a full text generation the next time Populate is called.</para>
</summary>
</member>
<member name="M:UnityEngine.TextGenerator.Populate(System.String,UnityEngine.TextGenerationSettings)">
<summary>
<para>Will generate the vertices and other data for the given string with the given settings.</para>
</summary>
<param name="str">String to generate.</param>
<param name="settings">Settings.</param>
</member>
<member name="M:UnityEngine.TextGenerator.PopulateWithErrors(System.String,UnityEngine.TextGenerationSettings,UnityEngine.GameObject)">
<summary>
<para>Will generate the vertices and other data for the given string with the given settings.</para>
</summary>
<param name="str">String to generate.</param>
<param name="settings">Generation settings.</param>
<param name="context">The object used as context of the error log message, if necessary.</param>
<returns>
<para>True if the generation is a success, false otherwise.</para>
</returns>
</member>
<member name="T:UnityEngine.TextMesh">
<summary>
<para>A script interface for the.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.alignment">
<summary>
<para>How lines of text are aligned (Left, Right, Center).</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.anchor">
<summary>
<para>Which point of the text shares the position of the Transform.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.characterSize">
<summary>
<para>The size of each character (This scales the whole text).</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.color">
<summary>
<para>The color used to render the text.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.font">
<summary>
<para>The Font used.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.fontSize">
<summary>
<para>The font size to use (for dynamic fonts).</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.fontStyle">
<summary>
<para>The font style to use (for dynamic fonts).</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.lineSpacing">
<summary>
<para>How much space will be in-between lines of text.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.offsetZ">
<summary>
<para>How far should the text be offset from the transform.position.z when drawing.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.richText">
<summary>
<para>Enable HTML-style tags for Text Formatting Markup.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.tabSize">
<summary>
<para>How much space will be inserted for a tab '\t' character. This is a multiplum of the 'spacebar' character offset.</para>
</summary>
</member>
<member name="P:UnityEngine.TextMesh.text">
<summary>
<para>The text that is displayed.</para>
</summary>
</member>
<member name="T:UnityEngine.UICharInfo">
<summary>
<para>Class that specifies some information about a renderable character.</para>
</summary>
</member>
<member name="F:UnityEngine.UICharInfo.charWidth">
<summary>
<para>Character width.</para>
</summary>
</member>
<member name="F:UnityEngine.UICharInfo.cursorPos">
<summary>
<para>Position of the character cursor in local (text generated) space.</para>
</summary>
</member>
<member name="T:UnityEngine.UILineInfo">
<summary>
<para>Information about a generated line of text.</para>
</summary>
</member>
<member name="F:UnityEngine.UILineInfo.height">
<summary>
<para>Height of the line.</para>
</summary>
</member>
<member name="F:UnityEngine.UILineInfo.leading">
<summary>
<para>Space in pixels between this line and the next line.</para>
</summary>
</member>
<member name="F:UnityEngine.UILineInfo.startCharIdx">
<summary>
<para>Index of the first character in the line.</para>
</summary>
</member>
<member name="F:UnityEngine.UILineInfo.topY">
<summary>
<para>The upper Y position of the line in pixels. This is used for text annotation such as the caret and selection box in the InputField.</para>
</summary>
</member>
<member name="T:UnityEngine.UIVertex">
<summary>
<para>Vertex class used by a Canvas for managing vertices.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.color">
<summary>
<para>Vertex color.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.normal">
<summary>
<para>Normal.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.position">
<summary>
<para>Vertex position.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.simpleVert">
<summary>
<para>Simple UIVertex with sensible settings for use in the UI system.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.tangent">
<summary>
<para>Tangent.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.uv0">
<summary>
<para>The first texture coordinate set of the mesh. Used by UI elements by default.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.uv1">
<summary>
<para>The second texture coordinate set of the mesh, if present.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.uv2">
<summary>
<para>The Third texture coordinate set of the mesh, if present.</para>
</summary>
</member>
<member name="F:UnityEngine.UIVertex.uv3">
<summary>
<para>The forth texture coordinate set of the mesh, if present.</para>
</summary>
</member>
<member name="T:UnityEngine.VerticalWrapMode">
<summary>
<para>Wrapping modes for text that reaches the vertical boundary.</para>
</summary>
</member>
<member name="F:UnityEngine.VerticalWrapMode.Overflow">
<summary>
<para>Text well continue to generate when reaching vertical boundary.</para>
</summary>
</member>
<member name="F:UnityEngine.VerticalWrapMode.Truncate">
<summary>
<para>Text will be clipped when reaching the vertical boundary.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.TilemapModule</name>
</assembly>
<member name="T:UnityEngine.CustomGridBrushAttribute">
<summary>
<para>Attribute to define the class as a grid brush and to make it available in the palette window.</para>
</summary>
</member>
<member name="P:UnityEngine.CustomGridBrushAttribute.defaultBrush">
<summary>
<para>If set to true, brush will replace Unity built-in brush as the default brush in palette window.
Only one class at any one time should set defaultBrush to true.</para>
</summary>
</member>
<member name="P:UnityEngine.CustomGridBrushAttribute.defaultName">
<summary>
<para>Name of the default instance of this brush.</para>
</summary>
</member>
<member name="P:UnityEngine.CustomGridBrushAttribute.hideAssetInstances">
<summary>
<para>Hide all asset instances of this brush in the tile palette window.</para>
</summary>
</member>
<member name="P:UnityEngine.CustomGridBrushAttribute.hideDefaultInstance">
<summary>
<para>Hide the default instance of brush in the tile palette window.</para>
</summary>
</member>
<member name="M:UnityEngine.CustomGridBrushAttribute.#ctor">
<summary>
<para>Attribute to define the class as a grid brush and to make it available in the palette window.</para>
</summary>
<param name="defaultBrush">If set to true, brush will replace Unity built-in brush as the default brush in palette window.</param>
<param name="defaultName">Name of the default instance of this brush.</param>
<param name="hideAssetInstanes">Hide all asset instances of this brush in the tile palette window.</param>
<param name="hideDefaultInstance">Hide the default instance of brush in the tile palette window.</param>
<param name="hideAssetInstances"></param>
</member>
<member name="M:UnityEngine.CustomGridBrushAttribute.#ctor(System.Boolean,System.Boolean,System.Boolean,System.String)">
<summary>
<para>Attribute to define the class as a grid brush and to make it available in the palette window.</para>
</summary>
<param name="defaultBrush">If set to true, brush will replace Unity built-in brush as the default brush in palette window.</param>
<param name="defaultName">Name of the default instance of this brush.</param>
<param name="hideAssetInstanes">Hide all asset instances of this brush in the tile palette window.</param>
<param name="hideDefaultInstance">Hide the default instance of brush in the tile palette window.</param>
<param name="hideAssetInstances"></param>
</member>
<member name="T:UnityEngine.GridBrushBase">
<summary>
<para>Base class for authoring data on a grid with grid painting tools like paint, erase, pick, select and fill.</para>
</summary>
</member>
<member name="M:UnityEngine.GridBrushBase.BoxErase(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt)">
<summary>
<para>Erases data on a grid within the given bounds.</para>
</summary>
<param name="gridLayout"> used for layout.</param>
<param name="brushTarget">Target of the erase operation. By default the currently selected GameObject.</param>
<param name="position">The bounds to erase data from.</param>
</member>
<member name="M:UnityEngine.GridBrushBase.BoxFill(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt)">
<summary>
<para>Box fills tiles and GameObjects into given bounds within the selected layers.</para>
</summary>
<param name="gridLayout"> used for layout.</param>
<param name="brushTarget">Target of box fill operation. By default the currently selected GameObject.</param>
<param name="position">The bounds to box fill data to.</param>
</member>
<member name="M:UnityEngine.GridBrushBase.Erase(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.Vector3Int)">
<summary>
<para>Erases data on a grid within the given bounds.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Target of the erase operation. By default the currently selected GameObject.</param>
<param name="position">The coordinates of the cell to erase data from.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.Flip(UnityEngine.GridBrushBase/FlipAxis,UnityEngine.GridLayout/CellLayout)">
<summary>
<para>Flips the grid brush in the given FlipAxis.</para>
</summary>
<param name="flip">Axis to flip by.</param>
<param name="layout">CellLayout for flipping.</param>
</member>
<member name="T:UnityEngine.GridBrushBase.FlipAxis">
<summary>
<para>Axis to flip tiles in the GridBrushBase by.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.FlipAxis.X">
<summary>
<para>Flip the brush in the X Axis.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.FlipAxis.Y">
<summary>
<para>Flip the brush in the Y Axis.</para>
</summary>
</member>
<member name="M:UnityEngine.GridBrushBase.FloodFill(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.Vector3Int)">
<summary>
<para>Flood fills data onto a grid given the starting coordinates of the cell.</para>
</summary>
<param name="gridLayout"> used for layout.</param>
<param name="brushTarget">Targets of flood fill operation. By default the currently selected GameObject.</param>
<param name="position">Starting position of the flood fill.</param>
</member>
<member name="M:UnityEngine.GridBrushBase.Move(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt,UnityEngine.BoundsInt)">
<summary>
<para>Move is called when user moves the area previously selected with the selection marquee.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Target of the move operation. By default the currently selected GameObject.</param>
<param name="from">Source bounds of the move.</param>
<param name="to">Target bounds of the move.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.MoveEnd(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt)">
<summary>
<para>MoveEnd is called when user has ended the move of the area previously selected with the selection marquee.</para>
</summary>
<param name="position">Layers affected by the move operation.</param>
<param name="brushTarget">Target of the move operation. By default the currently selected GameObject.</param>
<param name="grid"> used for layout.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.MoveStart(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt)">
<summary>
<para>MoveEnd is called when user starts moving the area previously selected with the selection marquee.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Target of the move operation. By default the currently selected GameObject.</param>
<param name="position">Position where the move operation has started.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.Paint(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.Vector3Int)">
<summary>
<para>Paints data into a grid within the given bounds.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Target of the paint operation. By default the currently selected GameObject.</param>
<param name="position">The coordinates of the cell to paint data to.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.Pick(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt,UnityEngine.Vector3Int)">
<summary>
<para>Picks data from a grid given the coordinates of the cells.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Target of the paint operation. By default the currently selected GameObject.</param>
<param name="position">The coordinates of the cells to paint data from.</param>
<param name="pivot">Pivot of the picking brush.</param>
<param name="gridLayout"></param>
</member>
<member name="M:UnityEngine.GridBrushBase.Rotate(UnityEngine.GridBrushBase/RotationDirection,UnityEngine.GridLayout/CellLayout)">
<summary>
<para>Rotates all tiles on the grid brush with the given RotationDirection.</para>
</summary>
<param name="direction">Direction to rotate by.</param>
<param name="layout">Cell Layout for rotating.</param>
</member>
<member name="T:UnityEngine.GridBrushBase.RotationDirection">
<summary>
<para>Direction to rotate tiles in the GridBrushBase by.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.RotationDirection.Clockwise">
<summary>
<para>Rotates tiles clockwise.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.RotationDirection.CounterClockwise">
<summary>
<para>Rotates tiles counter-clockwise.</para>
</summary>
</member>
<member name="M:UnityEngine.GridBrushBase.Select(UnityEngine.GridLayout,UnityEngine.GameObject,UnityEngine.BoundsInt)">
<summary>
<para>Select an area of a grid.</para>
</summary>
<param name="grid"> used for layout.</param>
<param name="brushTarget">Targets of paint operation. By default the currently selected GameObject.</param>
<param name="position">Area to get selected.</param>
<param name="gridLayout"></param>
</member>
<member name="T:UnityEngine.GridBrushBase.Tool">
<summary>
<para>Tool mode for the GridBrushBase.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Box">
<summary>
<para>Box Fill.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Erase">
<summary>
<para>Erase.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.FloodFill">
<summary>
<para>Flood Fill.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Move">
<summary>
<para>Move.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Paint">
<summary>
<para>Paint.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Pick">
<summary>
<para>Pick.</para>
</summary>
</member>
<member name="F:UnityEngine.GridBrushBase.Tool.Select">
<summary>
<para>Select.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.ITilemap">
<summary>
<para>Class passed onto when information is queried from the tiles.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.ITilemap.cellBounds">
<summary>
<para>Returns the boundaries of the Tilemap in cell size.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.ITilemap.localBounds">
<summary>
<para>Returns the boundaries of the Tilemap in local space size.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.ITilemap.origin">
<summary>
<para>The origin of the Tilemap in cell position.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.ITilemap.size">
<summary>
<para>The size of the Tilemap in cells.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetColor(UnityEngine.Vector3Int)">
<summary>
<para>Gets the color of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Color of the at the XY coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetComponent">
<summary>
<para>Returns the component of type T if the GameObject of the tile map has one attached, null if it doesn't.</para>
</summary>
<returns>
<para>The Component of type T to retrieve.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetSprite(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Sprite at the XY coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetTile(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para> placed at the cell.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetTile(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para> placed at the cell.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetTileFlags(UnityEngine.Vector3Int)">
<summary>
<para>Gets the TileFlags of the Tile at the given position.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>TileFlags from the Tile.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.GetTransformMatrix(UnityEngine.Vector3Int)">
<summary>
<para>Gets the transform matrix of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>The transform matrix.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.ITilemap.RefreshTile(UnityEngine.Vector3Int)">
<summary>
<para>Refreshes a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
</member>
<member name="T:UnityEngine.Tilemaps.Tile">
<summary>
<para>Class for a default tile in the Tilemap.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tile.color">
<summary>
<para>Color of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tile.flags">
<summary>
<para>TileFlags of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tile.gameObject">
<summary>
<para>GameObject of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tile.sprite">
<summary>
<para>Sprite to be rendered at the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tile.transform">
<summary>
<para>.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.Tile.ColliderType">
<summary>
<para>Enum for determining what collider shape is generated for this Tile by the TilemapCollider2D.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tile.ColliderType.Grid">
<summary>
<para>The grid layout boundary outline is used as the collider shape for the Tile by the TilemapCollider2D.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tile.ColliderType.None">
<summary>
<para>No collider shape is generated for the Tile by the TilemapCollider2D.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tile.ColliderType.Sprite">
<summary>
<para>The Sprite outline is used as the collider shape for the Tile by the TilemapCollider2D.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tile.GetTileData(UnityEngine.Vector3Int,UnityEngine.Tilemaps.ITilemap,UnityEngine.Tilemaps.TileData&amp;)">
<summary>
<para>Retrieves the tile rendering data for the Tile.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tilemap">The Tilemap the tile is present on.</param>
<param name="tileData">Data to render the tile. This is filled with Tile, Tile.color and Tile.transform.</param>
<returns>
<para>Whether the call was successful. This returns true for Tile.</para>
</returns>
</member>
<member name="T:UnityEngine.Tilemaps.TileAnimationData">
<summary>
<para>A Struct for the required data for animating a Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileAnimationData.animatedSprites">
<summary>
<para>The array of that are ordered by appearance in the animation.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileAnimationData.animationSpeed">
<summary>
<para>The animation speed.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileAnimationData.animationStartTime">
<summary>
<para>The start time of the animation. The animation will begin at this time offset.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.TileBase">
<summary>
<para>Base class for a tile in the Tilemap.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.TileBase.GetTileAnimationData(UnityEngine.Vector3Int,UnityEngine.Tilemaps.ITilemap,UnityEngine.Tilemaps.TileAnimationData&amp;)">
<summary>
<para>Retrieves any tile animation data from the scripted tile.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tilemap">The Tilemap the tile is present on.</param>
<param name="tileAnimationData">Data to run an animation on the tile.</param>
<returns>
<para>Whether the call was successful.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.TileBase.GetTileData(UnityEngine.Vector3Int,UnityEngine.Tilemaps.ITilemap,UnityEngine.Tilemaps.TileData&amp;)">
<summary>
<para>Retrieves any tile rendering data from the scripted tile.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tilemap">The Tilemap the tile is present on.</param>
<param name="tileData">Data to render the tile.</param>
<returns>
<para>Whether the call was successful.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.TileBase.RefreshTile(UnityEngine.Vector3Int,UnityEngine.Tilemaps.ITilemap)">
<summary>
<para>This method is called when the tile is refreshed.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tilemap">The Tilemap the tile is present on.</param>
</member>
<member name="M:UnityEngine.Tilemaps.TileBase.StartUp(UnityEngine.Vector3Int,UnityEngine.Tilemaps.ITilemap,UnityEngine.GameObject)">
<summary>
<para>StartUp is called on the first frame of the running scene.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tilemap">The Tilemap the tile is present on.</param>
<param name="go">The GameObject instantiated for the Tile.</param>
<returns>
<para>Whether the call was successful.</para>
</returns>
</member>
<member name="T:UnityEngine.Tilemaps.TileData">
<summary>
<para>A Struct for the required data for rendering a Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileData.color">
<summary>
<para>Color of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileData.flags">
<summary>
<para>TileFlags of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileData.gameObject">
<summary>
<para>GameObject of the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileData.sprite">
<summary>
<para>Sprite to be rendered at the Tile.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TileData.transform">
<summary>
<para>Matrix4x4|Transform matrix of the Tile.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.TileFlags">
<summary>
<para>Flags controlling behavior for the TileBase.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TileFlags.InstantiateGameObjectRuntimeOnly">
<summary>
<para>TileBase does not instantiate its associated GameObject in editor mode and instantiates it only during play mode.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TileFlags.LockAll">
<summary>
<para>All lock flags.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TileFlags.LockColor">
<summary>
<para>TileBase locks any color set by brushes or the user.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TileFlags.LockTransform">
<summary>
<para>TileBase locks any transform matrix set by brushes or the user.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TileFlags.None">
<summary>
<para>No TileFlags are set.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.Tilemap">
<summary>
<para>The tile map stores component.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.animationFrameRate">
<summary>
<para>The frame rate for all tile animations in the tile map.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.cellBounds">
<summary>
<para>Returns the boundaries of the Tilemap in cell size.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.color">
<summary>
<para>The color of the tile map layer.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.layoutGrid">
<summary>
<para>Gets the Grid associated with this tile map.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.layoutGrid">
<summary>
<para>Gets the Grid associated with this tile map.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.localBounds">
<summary>
<para>Returns the boundaries of the Tilemap in local space size.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.orientation">
<summary>
<para>Orientation of the tiles in the Tilemap.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.orientationMatrix">
<summary>
<para>Orientation Matrix of the orientation of the tiles in the Tilemap.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.origin">
<summary>
<para>The origin of the Tilemap in cell position.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.size">
<summary>
<para>The size of the Tilemap in cells.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.Tilemap.tileAnchor">
<summary>
<para>Gets the anchor point of tiles in the Tilemap.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.AddTileFlags(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileFlags)">
<summary>
<para>Adds the TileFlags onto the Tile at the given position.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="flags">TileFlags to add (with bitwise or) onto the flags provided by Tile.TileBase.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.BoxFill(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileBase,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
<para>Does a box fill with the given. Starts from given coordinates and fills the limits from start to end (inclusive).</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tile"> to place.</param>
<param name="startX">The minimum X coordinate limit to fill to.</param>
<param name="startY">The minimum Y coordinate limit to fill to.</param>
<param name="endX">The maximum X coordinate limit to fill to.</param>
<param name="endY">The maximum Y coordinate limit to fill to.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.ClearAllTiles">
<summary>
<para>Clears all tiles that are placed in the Tilemap.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.CompressBounds">
<summary>
<para>Compresses the origin and size of the Tilemap to bounds where tiles exist.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.ContainsTile(UnityEngine.Tilemaps.TileBase)">
<summary>
<para>Returns true if the Tilemap contains the given. Returns false if not.</para>
</summary>
<param name="tileAsset">Tile to check.</param>
<returns>
<para>Whether the Tilemap contains the tile.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.FloodFill(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileBase)">
<summary>
<para>Does a flood fill with the given starting from the given coordinates.</para>
</summary>
<param name="position">Start position of the flood fill on the Tilemap.</param>
<param name="tile"> to place.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetCellCenterLocal(UnityEngine.Vector3Int)">
<summary>
<para>Get the logical center coordinate of a grid cell in local space.</para>
</summary>
<param name="position">Grid cell position.</param>
<returns>
<para>Center of the cell transformed into local space coordinates.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetCellCenterWorld(UnityEngine.Vector3Int)">
<summary>
<para>Get the logical center coordinate of a grid cell in world space.</para>
</summary>
<param name="position">Grid cell position.</param>
<returns>
<para>Center of the cell transformed into world space coordinates.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetColliderType(UnityEngine.Vector3Int)">
<summary>
<para>Gets the collider type of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Collider type of the at the XY coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetColor(UnityEngine.Vector3Int)">
<summary>
<para>Gets the color of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Color of the at the XY coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetInstantiatedObject(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>GameObject instantiated by the Tile at the position.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetSprite(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Sprite at the XY coordinate.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetTile(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Tilemaps.TileBase placed at the cell.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetTile(UnityEngine.Vector3Int)">
<summary>
<para>Gets the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>Tilemaps.TileBase|Tile of type T placed at the cell.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetTileFlags(UnityEngine.Vector3Int)">
<summary>
<para>Gets the TileFlags of the Tile at the given position.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>TileFlags from the Tile.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetTilesBlock(UnityEngine.BoundsInt)">
<summary>
<para>Retrieves an array of tiles with the given bounds.</para>
</summary>
<param name="bounds">Bounds to retrieve from.</param>
<returns>
<para>An array of at the given bounds.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetTransformMatrix(UnityEngine.Vector3Int)">
<summary>
<para>Gets the transform matrix of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<returns>
<para>The transform matrix.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetUsedTilesCount">
<summary>
<para>Get the total number of different.</para>
</summary>
<returns>
<para>The total number of different.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.GetUsedTilesNonAlloc(UnityEngine.Tilemaps.TileBase[])">
<summary>
<para>Fills the given array with the total number of different and returns the number of tiles filled.</para>
</summary>
<param name="usedTiles">The array to be filled.</param>
<returns>
<para>The number of tiles filled.</para>
</returns>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.HasTile(UnityEngine.Vector3Int)">
<summary>
<para>Returns whether there is a tile at the position.</para>
</summary>
<param name="position">Position to check.</param>
<returns>
<para>True if there is a tile at the position. False if not.</para>
</returns>
</member>
<member name="T:UnityEngine.Tilemaps.Tilemap.Orientation">
<summary>
<para>Determines the orientation of.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.Custom">
<summary>
<para>Use a custom orientation to all tiles in the tile map.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.XY">
<summary>
<para>Orients tiles in the XY plane.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.XZ">
<summary>
<para>Orients tiles in the XZ plane.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.YX">
<summary>
<para>Orients tiles in the YX plane.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.YZ">
<summary>
<para>Orients tiles in the YZ plane.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.ZX">
<summary>
<para>Orients tiles in the ZX plane.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.Tilemap.Orientation.ZY">
<summary>
<para>Orients tiles in the ZY plane.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.RefreshAllTiles">
<summary>
<para>Refreshes all. The tile map will retrieve the rendering data, animation data and other data for all tiles and update all relevant components.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.RefreshTile(UnityEngine.Vector3Int)">
<summary>
<para>Refreshes a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.RemoveTileFlags(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileFlags)">
<summary>
<para>Removes the TileFlags onto the Tile at the given position.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="flags">TileFlags to remove from the Tile.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.ResizeBounds">
<summary>
<para>Resizes tiles in the Tilemap to bounds defined by origin and size.</para>
</summary>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetColliderType(UnityEngine.Vector3Int,UnityEngine.Tilemaps.Tile/ColliderType)">
<summary>
<para>Sets the collider type of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="colliderType">Collider type to set the to at the XYZ coordinate.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetColor(UnityEngine.Vector3Int,UnityEngine.Color)">
<summary>
<para>Sets the color of a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="color">Color to set the to at the XY coordinate.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetTile(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileBase)">
<summary>
<para>Sets a.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="tile"> to be placed the cell.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetTileFlags(UnityEngine.Vector3Int,UnityEngine.Tilemaps.TileFlags)">
<summary>
<para>Sets the TileFlags onto the Tile at the given position.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="flags">TileFlags to add onto the Tile.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetTiles(UnityEngine.Vector3Int[],UnityEngine.Tilemaps.TileBase[])">
<summary>
<para>Sets an array of.</para>
</summary>
<param name="positionArray">An array of positions of Tiles on the Tilemap.</param>
<param name="tileArray">An array of to be placed.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetTilesBlock(UnityEngine.BoundsInt,UnityEngine.Tilemaps.TileBase[])">
<summary>
<para>Fills bounds with array of tiles.</para>
</summary>
<param name="position">Bounds to be filled.</param>
<param name="tileArray">An array of to be placed.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SetTransformMatrix(UnityEngine.Vector3Int,UnityEngine.Matrix4x4)">
<summary>
<para>Sets the transform matrix of a tile given the XYZ coordinates of a cell in the.</para>
</summary>
<param name="position">Position of the Tile on the Tilemap.</param>
<param name="transform">The transform matrix.</param>
</member>
<member name="M:UnityEngine.Tilemaps.Tilemap.SwapTile(UnityEngine.Tilemaps.TileBase,UnityEngine.Tilemaps.TileBase)">
<summary>
<para>Swaps all existing tiles of changeTile to newTile and refreshes all the swapped tiles.</para>
</summary>
<param name="changeTile">Tile to swap.</param>
<param name="newTile">Tile to swap to.</param>
</member>
<member name="T:UnityEngine.Tilemaps.TilemapCollider2D">
<summary>
<para>Collider for 2D physics representing shapes defined by the corresponding Tilemap.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.TilemapRenderer">
<summary>
<para>The tile map renderer is used to render the tile map marked out by a component.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TilemapRenderer.chunkSize">
<summary>
<para>Size in number of tiles of each chunk created by the TilemapRenderer.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TilemapRenderer.maskInteraction">
<summary>
<para>Specifies how the Tilemap interacts with the masks.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TilemapRenderer.maxChunkCount">
<summary>
<para>Maximum number of chunks the TilemapRenderer caches in memory.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TilemapRenderer.maxFrameAge">
<summary>
<para>Maximum number of frames the TilemapRenderer keeps unused chunks in memory.</para>
</summary>
</member>
<member name="P:UnityEngine.Tilemaps.TilemapRenderer.sortOrder">
<summary>
<para>Active sort order for the TilemapRenderer.</para>
</summary>
</member>
<member name="T:UnityEngine.Tilemaps.TilemapRenderer.SortOrder">
<summary>
<para>Sort order for all tiles rendered by the TilemapRenderer.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TilemapRenderer.SortOrder.BottomLeft">
<summary>
<para>Sorts tiles for rendering starting from the tile with the lowest X and the lowest Y cell positions.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TilemapRenderer.SortOrder.BottomRight">
<summary>
<para>Sorts tiles for rendering starting from the tile with the highest X and the lowest Y cell positions.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TilemapRenderer.SortOrder.TopLeft">
<summary>
<para>Sorts tiles for rendering starting from the tile with the lowest X and the highest Y cell positions.</para>
</summary>
</member>
<member name="F:UnityEngine.Tilemaps.TilemapRenderer.SortOrder.TopRight">
<summary>
<para>Sorts tiles for rendering starting from the tile with the highest X and the lowest Y cell positions.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UIModule</name>
</assembly>
<member name="T:UnityEngine.AdditionalCanvasShaderChannels">
<summary>
<para>Enum mask of possible shader channel properties that can also be included when the Canvas mesh is created.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.None">
<summary>
<para>No additional shader parameters are needed.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.Normal">
<summary>
<para>Include the normals on the mesh vertices.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.Tangent">
<summary>
<para>Include the Tangent on the mesh vertices.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.TexCoord1">
<summary>
<para>Include UV1 on the mesh vertices.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.TexCoord2">
<summary>
<para>Include UV2 on the mesh vertices.</para>
</summary>
</member>
<member name="F:UnityEngine.AdditionalCanvasShaderChannels.TexCoord3">
<summary>
<para>Include UV3 on the mesh vertices.</para>
</summary>
</member>
<member name="T:UnityEngine.Canvas">
<summary>
<para>Element that can be used for screen rendering.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.additionalShaderChannels">
<summary>
<para>Get or set the mask of additional shader channels to be used when creating the Canvas mesh.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.cachedSortingLayerValue">
<summary>
<para>Cached calculated value based upon SortingLayerID.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.isRootCanvas">
<summary>
<para>Is this the root Canvas?</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.normalizedSortingGridSize">
<summary>
<para>The normalized grid size that the canvas will split the renderable area into.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.overridePixelPerfect">
<summary>
<para>Allows for nested canvases to override pixelPerfect settings inherited from parent canvases.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.overrideSorting">
<summary>
<para>Override the sorting of canvas.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.pixelPerfect">
<summary>
<para>Force elements in the canvas to be aligned with pixels. Only applies with renderMode is Screen Space.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.pixelRect">
<summary>
<para>Get the render rect for the Canvas.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.planeDistance">
<summary>
<para>How far away from the camera is the Canvas generated.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.referencePixelsPerUnit">
<summary>
<para>The number of pixels per unit that is considered the default.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.renderMode">
<summary>
<para>Is the Canvas in World or Overlay mode?</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.renderOrder">
<summary>
<para>The render order in which the canvas is being emitted to the scene.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.rootCanvas">
<summary>
<para>Returns the Canvas closest to root, by checking through each parent and returning the last canvas found. If no other canvas is found then the canvas will return itself.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.scaleFactor">
<summary>
<para>Used to scale the entire canvas, while still making it fit the screen. Only applies with renderMode is Screen Space.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.sortingGridNormalizedSize">
<summary>
<para>The normalized grid size that the canvas will split the renderable area into.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.sortingLayerID">
<summary>
<para>Unique ID of the Canvas' sorting layer.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.sortingLayerName">
<summary>
<para>Name of the Canvas' sorting layer.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.sortingOrder">
<summary>
<para>Canvas' order within a sorting layer.</para>
</summary>
</member>
<member name="P:UnityEngine.Canvas.targetDisplay">
<summary>
<para>For Overlay mode, display index on which the UI canvas will appear.</para>
</summary>
</member>
<member name="?:UnityEngine.Canvas.willRenderCanvases(UnityEngine.Canvas/WillRenderCanvases)">
<summary>
<para>Event that is called just before Canvas rendering happens.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Canvas.worldCamera">
<summary>
<para>Camera used for sizing the Canvas when in Screen Space - Camera. Also used as the Camera that events will be sent through for a World Space [[Canvas].</para>
</summary>
</member>
<member name="M:UnityEngine.Canvas.ForceUpdateCanvases">
<summary>
<para>Force all canvases to update their content.</para>
</summary>
</member>
<member name="M:UnityEngine.Canvas.GetDefaultCanvasMaterial">
<summary>
<para>Returns the default material that can be used for rendering normal elements on the Canvas.</para>
</summary>
</member>
<member name="M:UnityEngine.Canvas.GetDefaultCanvasTextMaterial">
<summary>
<para>Returns the default material that can be used for rendering text elements on the Canvas.</para>
</summary>
</member>
<member name="M:UnityEngine.Canvas.GetETC1SupportedCanvasMaterial">
<summary>
<para>Gets or generates the ETC1 Material.</para>
</summary>
<returns>
<para>The generated ETC1 Material from the Canvas.</para>
</returns>
</member>
<member name="T:UnityEngine.CanvasGroup">
<summary>
<para>A Canvas placable element that can be used to modify children Alpha, Raycasting, Enabled state.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasGroup.alpha">
<summary>
<para>Set the alpha of the group.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasGroup.blocksRaycasts">
<summary>
<para>Does this group block raycasting (allow collision).</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasGroup.ignoreParentGroups">
<summary>
<para>Should the group ignore parent groups?</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasGroup.interactable">
<summary>
<para>Is the group interactable (are the elements beneath the group enabled).</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasGroup.IsRaycastLocationValid(UnityEngine.Vector2,UnityEngine.Camera)">
<summary>
<para>Returns true if the Group allows raycasts.</para>
</summary>
<param name="sp"></param>
<param name="eventCamera"></param>
</member>
<member name="T:UnityEngine.CanvasRenderer">
<summary>
<para>A component that will render to the screen after all normal rendering has completed when attached to a Canvas. Designed for GUI application.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.absoluteDepth">
<summary>
<para>Depth of the renderer relative to the root canvas.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.cull">
<summary>
<para>Indicates whether geometry emitted by this renderer is ignored.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.hasMoved">
<summary>
<para>True if any change has occured that would invalidate the positions of generated geometry.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.hasPopInstruction">
<summary>
<para>Enable 'render stack' pop draw call.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.hasRectClipping">
<summary>
<para>True if rect clipping has been enabled on this renderer.
See Also: CanvasRenderer.EnableRectClipping, CanvasRenderer.DisableRectClipping.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.isMask">
<summary>
<para>Is the UIRenderer a mask component.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.materialCount">
<summary>
<para>The number of materials usable by this renderer.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.popMaterialCount">
<summary>
<para>The number of materials usable by this renderer. Used internally for masking.</para>
</summary>
</member>
<member name="P:UnityEngine.CanvasRenderer.relativeDepth">
<summary>
<para>Depth of the renderer realative to the parent canvas.</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasRenderer.AddUIVertexStream(System.Collections.Generic.List`1&lt;UnityEngine.UIVertex&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Color32&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector4&gt;)">
<summary>
<para>Take the Vertex steam and split it corrisponding arrays (positions, colors, uv0s, uv1s, normals and tangents).</para>
</summary>
<param name="verts">The UIVertex list to split.</param>
<param name="positions">The destination list for the verts positions.</param>
<param name="colors">The destination list for the verts colors.</param>
<param name="uv0S">The destination list for the verts uv0s.</param>
<param name="uv1S">The destination list for the verts uv1s.</param>
<param name="normals">The destination list for the verts normals.</param>
<param name="tangents">The destination list for the verts tangents.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.Clear">
<summary>
<para>Remove all cached vertices.</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasRenderer.CreateUIVertexStream(System.Collections.Generic.List`1&lt;UnityEngine.UIVertex&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Color32&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector4&gt;,System.Collections.Generic.List`1&lt;System.Int32&gt;)">
<summary>
<para>Convert a set of vertex components into a stream of UIVertex.</para>
</summary>
<param name="verts"></param>
<param name="positions"></param>
<param name="colors"></param>
<param name="uv0S"></param>
<param name="uv1S"></param>
<param name="normals"></param>
<param name="tangents"></param>
<param name="indices"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.DisableRectClipping">
<summary>
<para>Disables rectangle clipping for this CanvasRenderer.</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasRenderer.EnableRectClipping(UnityEngine.Rect)">
<summary>
<para>Enables rect clipping on the CanvasRendered. Geometry outside of the specified rect will be clipped (not rendered).</para>
</summary>
<param name="rect"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.GetAlpha">
<summary>
<para>Get the current alpha of the renderer.</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasRenderer.GetColor">
<summary>
<para>Get the current color of the renderer.</para>
</summary>
</member>
<member name="M:UnityEngine.CanvasRenderer.GetMaterial(System.Int32)">
<summary>
<para>Gets the current Material assigned to the CanvasRenderer.</para>
</summary>
<param name="index">The material index to retrieve (0 if this parameter is omitted).</param>
<returns>
<para>Result.</para>
</returns>
</member>
<member name="M:UnityEngine.CanvasRenderer.GetMaterial">
<summary>
<para>Gets the current Material assigned to the CanvasRenderer.</para>
</summary>
<param name="index">The material index to retrieve (0 if this parameter is omitted).</param>
<returns>
<para>Result.</para>
</returns>
</member>
<member name="M:UnityEngine.CanvasRenderer.GetPopMaterial(System.Int32)">
<summary>
<para>Gets the current Material assigned to the CanvasRenderer. Used internally for masking.</para>
</summary>
<param name="index"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetAlpha(System.Single)">
<summary>
<para>Set the alpha of the renderer. Will be multiplied with the UIVertex alpha and the Canvas alpha.</para>
</summary>
<param name="alpha">Alpha.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetAlphaTexture(UnityEngine.Texture)">
<summary>
<para>The Alpha Texture that will be passed to the Shader under the _AlphaTex property.</para>
</summary>
<param name="texture">The Texture to be passed.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetColor(UnityEngine.Color)">
<summary>
<para>Set the color of the renderer. Will be multiplied with the UIVertex color and the Canvas color.</para>
</summary>
<param name="color">Renderer multiply color.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetMaterial(UnityEngine.Material,System.Int32)">
<summary>
<para>Set the material for the canvas renderer. If a texture is specified then it will be used as the 'MainTex' instead of the material's 'MainTex'.
See Also: CanvasRenderer.SetMaterialCount, CanvasRenderer.SetTexture.</para>
</summary>
<param name="material">Material for rendering.</param>
<param name="texture">Material texture overide.</param>
<param name="index">Material index.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetMaterial(UnityEngine.Material,UnityEngine.Texture)">
<summary>
<para>Set the material for the canvas renderer. If a texture is specified then it will be used as the 'MainTex' instead of the material's 'MainTex'.
See Also: CanvasRenderer.SetMaterialCount, CanvasRenderer.SetTexture.</para>
</summary>
<param name="material">Material for rendering.</param>
<param name="texture">Material texture overide.</param>
<param name="index">Material index.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetMesh(UnityEngine.Mesh)">
<summary>
<para>Sets the Mesh used by this renderer.</para>
</summary>
<param name="mesh"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetPopMaterial(UnityEngine.Material,System.Int32)">
<summary>
<para>Set the material for the canvas renderer. Used internally for masking.</para>
</summary>
<param name="material"></param>
<param name="index"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetTexture(UnityEngine.Texture)">
<summary>
<para>Sets the texture used by this renderer's material.</para>
</summary>
<param name="texture"></param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetVertices(System.Collections.Generic.List`1&lt;UnityEngine.UIVertex&gt;)">
<summary>
<para>Set the vertices for the UIRenderer.</para>
</summary>
<param name="vertices">Array of vertices to set.</param>
<param name="size">Number of vertices to set.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SetVertices(UnityEngine.UIVertex[],System.Int32)">
<summary>
<para>Set the vertices for the UIRenderer.</para>
</summary>
<param name="vertices">Array of vertices to set.</param>
<param name="size">Number of vertices to set.</param>
</member>
<member name="M:UnityEngine.CanvasRenderer.SplitUIVertexStreams(System.Collections.Generic.List`1&lt;UnityEngine.UIVertex&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Color32&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector2&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector3&gt;,System.Collections.Generic.List`1&lt;UnityEngine.Vector4&gt;,System.Collections.Generic.List`1&lt;System.Int32&gt;)">
<summary>
<para>Given a list of UIVertex, split the stream into it's component types.</para>
</summary>
<param name="verts"></param>
<param name="positions"></param>
<param name="colors"></param>
<param name="uv0S"></param>
<param name="uv1S"></param>
<param name="normals"></param>
<param name="tangents"></param>
<param name="indices"></param>
</member>
<member name="?:UnityEngine.ICanvasRaycastFilter">
<summary>
<para>This element can filter raycasts. If the top level element is hit it can further 'check' if the location is valid.</para>
</summary>
</member>
<member name="M:UnityEngine.ICanvasRaycastFilter.IsRaycastLocationValid(UnityEngine.Vector2,UnityEngine.Camera)">
<summary>
<para>Given a point and a camera is the raycast valid.</para>
</summary>
<param name="sp">Screen position.</param>
<param name="eventCamera">Raycast camera.</param>
<returns>
<para>Valid.</para>
</returns>
</member>
<member name="T:UnityEngine.RectTransformUtility">
<summary>
<para>Utility class containing helper methods for working with RectTransform.</para>
</summary>
</member>
<member name="M:UnityEngine.RectTransformUtility.FlipLayoutAxes(UnityEngine.RectTransform,System.Boolean,System.Boolean)">
<summary>
<para>Flips the horizontal and vertical axes of the RectTransform size and alignment, and optionally its children as well.</para>
</summary>
<param name="rect">The RectTransform to flip.</param>
<param name="keepPositioning">Flips around the pivot if true. Flips within the parent rect if false.</param>
<param name="recursive">Flip the children as well?</param>
</member>
<member name="M:UnityEngine.RectTransformUtility.FlipLayoutOnAxis(UnityEngine.RectTransform,System.Int32,System.Boolean,System.Boolean)">
<summary>
<para>Flips the alignment of the RectTransform along the horizontal or vertical axis, and optionally its children as well.</para>
</summary>
<param name="rect">The RectTransform to flip.</param>
<param name="keepPositioning">Flips around the pivot if true. Flips within the parent rect if false.</param>
<param name="recursive">Flip the children as well?</param>
<param name="axis">The axis to flip along. 0 is horizontal and 1 is vertical.</param>
</member>
<member name="M:UnityEngine.RectTransformUtility.PixelAdjustPoint(UnityEngine.Vector2,UnityEngine.Transform,UnityEngine.Canvas)">
<summary>
<para>Convert a given point in screen space into a pixel correct point.</para>
</summary>
<param name="point"></param>
<param name="elementTransform"></param>
<param name="canvas"></param>
<returns>
<para>Pixel adjusted point.</para>
</returns>
</member>
<member name="M:UnityEngine.RectTransformUtility.PixelAdjustRect(UnityEngine.RectTransform,UnityEngine.Canvas)">
<summary>
<para>Given a rect transform, return the corner points in pixel accurate coordinates.</para>
</summary>
<param name="rectTransform"></param>
<param name="canvas"></param>
<returns>
<para>Pixel adjusted rect.</para>
</returns>
</member>
<member name="M:UnityEngine.RectTransformUtility.RectangleContainsScreenPoint(UnityEngine.RectTransform,UnityEngine.Vector2,UnityEngine.Camera)">
<summary>
<para>Does the RectTransform contain the screen point as seen from the given camera?</para>
</summary>
<param name="rect">The RectTransform to test with.</param>
<param name="screenPoint">The screen point to test.</param>
<param name="cam">The camera from which the test is performed from. (Optional)</param>
<returns>
<para>True if the point is inside the rectangle.</para>
</returns>
</member>
<member name="M:UnityEngine.RectTransformUtility.ScreenPointToLocalPointInRectangle(UnityEngine.RectTransform,UnityEngine.Vector2,UnityEngine.Camera,UnityEngine.Vector2&amp;)">
<summary>
<para>Transform a screen space point to a position in the local space of a RectTransform that is on the plane of its rectangle.</para>
</summary>
<param name="rect">The RectTransform to find a point inside.</param>
<param name="cam">The camera associated with the screen space position.</param>
<param name="screenPoint">Screen space position.</param>
<param name="localPoint">Point in local space of the rect transform.</param>
<returns>
<para>Returns true if the plane of the RectTransform is hit, regardless of whether the point is inside the rectangle.</para>
</returns>
</member>
<member name="M:UnityEngine.RectTransformUtility.ScreenPointToWorldPointInRectangle(UnityEngine.RectTransform,UnityEngine.Vector2,UnityEngine.Camera,UnityEngine.Vector3&amp;)">
<summary>
<para>Transform a screen space point to a position in world space that is on the plane of the given RectTransform.</para>
</summary>
<param name="rect">The RectTransform to find a point inside.</param>
<param name="cam">The camera associated with the screen space position.</param>
<param name="screenPoint">Screen space position.</param>
<param name="worldPoint">Point in world space.</param>
<returns>
<para>Returns true if the plane of the RectTransform is hit, regardless of whether the point is inside the rectangle.</para>
</returns>
</member>
<member name="T:UnityEngine.RenderMode">
<summary>
<para>RenderMode for the Canvas.</para>
</summary>
</member>
<member name="F:UnityEngine.RenderMode.ScreenSpaceCamera">
<summary>
<para>Render using the Camera configured on the Canvas.</para>
</summary>
</member>
<member name="F:UnityEngine.RenderMode.ScreenSpaceOverlay">
<summary>
<para>Render at the end of the scene using a 2D Canvas.</para>
</summary>
</member>
<member name="F:UnityEngine.RenderMode.WorldSpace">
<summary>
<para>Render using any Camera in the scene that can render the layer.</para>
</summary>
</member>
</members>
</doc>
This diff could not be displayed because it is too large.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityAnalyticsModule</name>
</assembly>
<member name="T:UnityEngine.Analytics.Analytics">
<summary>
<para>Unity Analytics provides insight into your game users e.g. DAU, MAU.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.Analytics.deviceStatsEnabled">
<summary>
<para>Controls whether the sending of device stats at runtime is enabled.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.Analytics.enabled">
<summary>
<para>Controls whether the Analytics service is enabled at runtime.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.Analytics.limitUserTracking">
<summary>
<para>Controls whether to limit user tracking at runtime.</para>
</summary>
</member>
<member name="M:UnityEngine.Analytics.Analytics.CustomEvent(System.String,System.Collections.Generic.IDictionary`2&lt;System.String,System.Object&gt;)">
<summary>
<para>Custom Events (optional).</para>
</summary>
<param name="customEventName">Name of custom event. Name cannot include the prefix "unity." - This is a reserved keyword.</param>
<param name="eventData">Additional parameters sent to Unity Analytics at the time the custom event was triggered. Dictionary key cannot include the prefix "unity." - This is a reserved keyword.</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.CustomEvent(System.String)">
<summary>
<para>Custom Events (optional).</para>
</summary>
<param name="customEventName"></param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.CustomEvent(System.String,UnityEngine.Vector3)">
<summary>
<para>Custom Events (optional).</para>
</summary>
<param name="customEventName"></param>
<param name="position"></param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.FlushEvents">
<summary>
<para>Attempts to flush immediately all queued analytics events to the network and filesystem cache if possible (optional).</para>
</summary>
</member>
<member name="M:UnityEngine.Analytics.Analytics.SetUserBirthYear(System.Int32)">
<summary>
<para>User Demographics (optional).</para>
</summary>
<param name="birthYear">Birth year of user. Must be 4-digit year format, only.</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.SetUserGender(UnityEngine.Analytics.Gender)">
<summary>
<para>User Demographics (optional).</para>
</summary>
<param name="gender">Gender of user can be "Female", "Male", or "Unknown".</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.SetUserId(System.String)">
<summary>
<para>User Demographics (optional).</para>
</summary>
<param name="userId">User id.</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.Transaction(System.String,System.Decimal,System.String)">
<summary>
<para>Tracking Monetization (optional).</para>
</summary>
<param name="productId">The id of the purchased item.</param>
<param name="amount">The price of the item.</param>
<param name="currency">Abbreviation of the currency used for the transaction. For example “USD” (United States Dollars). See http:en.wikipedia.orgwikiISO_4217 for a standardized list of currency abbreviations.</param>
<param name="receiptPurchaseData">Receipt data (iOS) receipt ID (android) for in-app purchases to verify purchases with Apple iTunes / Google Play. Use null in the absence of receipts.</param>
<param name="signature">Android receipt signature. If using native Android use the INAPP_DATA_SIGNATURE string containing the signature of the purchase data that was signed with the private key of the developer. The data signature uses the RSASSA-PKCS1-v1_5 scheme. Pass in null in absence of a signature.</param>
<param name="usingIAPService">Set to true when using UnityIAP.</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.Transaction(System.String,System.Decimal,System.String,System.String,System.String)">
<summary>
<para>Tracking Monetization (optional).</para>
</summary>
<param name="productId">The id of the purchased item.</param>
<param name="amount">The price of the item.</param>
<param name="currency">Abbreviation of the currency used for the transaction. For example “USD” (United States Dollars). See http:en.wikipedia.orgwikiISO_4217 for a standardized list of currency abbreviations.</param>
<param name="receiptPurchaseData">Receipt data (iOS) receipt ID (android) for in-app purchases to verify purchases with Apple iTunes / Google Play. Use null in the absence of receipts.</param>
<param name="signature">Android receipt signature. If using native Android use the INAPP_DATA_SIGNATURE string containing the signature of the purchase data that was signed with the private key of the developer. The data signature uses the RSASSA-PKCS1-v1_5 scheme. Pass in null in absence of a signature.</param>
<param name="usingIAPService">Set to true when using UnityIAP.</param>
</member>
<member name="M:UnityEngine.Analytics.Analytics.Transaction(System.String,System.Decimal,System.String,System.String,System.String,System.Boolean)">
<summary>
<para>Tracking Monetization (optional).</para>
</summary>
<param name="productId">The id of the purchased item.</param>
<param name="amount">The price of the item.</param>
<param name="currency">Abbreviation of the currency used for the transaction. For example “USD” (United States Dollars). See http:en.wikipedia.orgwikiISO_4217 for a standardized list of currency abbreviations.</param>
<param name="receiptPurchaseData">Receipt data (iOS) receipt ID (android) for in-app purchases to verify purchases with Apple iTunes / Google Play. Use null in the absence of receipts.</param>
<param name="signature">Android receipt signature. If using native Android use the INAPP_DATA_SIGNATURE string containing the signature of the purchase data that was signed with the private key of the developer. The data signature uses the RSASSA-PKCS1-v1_5 scheme. Pass in null in absence of a signature.</param>
<param name="usingIAPService">Set to true when using UnityIAP.</param>
</member>
<member name="T:UnityEngine.Analytics.AnalyticsResult">
<summary>
<para>Analytics API result.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.AnalyticsDisabled">
<summary>
<para>Analytics API result: Analytics is disabled.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.InvalidData">
<summary>
<para>Analytics API result: Invalid argument value.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.NotInitialized">
<summary>
<para>Analytics API result: Analytics not initialized.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.Ok">
<summary>
<para>Analytics API result: Success.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.SizeLimitReached">
<summary>
<para>Analytics API result: Argument size limit.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.TooManyItems">
<summary>
<para>Analytics API result: Too many parameters.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.TooManyRequests">
<summary>
<para>Analytics API result: Too many requests.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsResult.UnsupportedPlatform">
<summary>
<para>Analytics API result: This platform doesn't support Analytics.</para>
</summary>
</member>
<member name="T:UnityEngine.Analytics.Gender">
<summary>
<para>User Demographics: Gender of a user.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.Gender.Female">
<summary>
<para>User Demographics: Female Gender of a user.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.Gender.Male">
<summary>
<para>User Demographics: Male Gender of a user.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.Gender.Unknown">
<summary>
<para>User Demographics: Unknown Gender of a user.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityConnectModule</name>
</assembly>
<member name="T:UnityEngine.Analytics.AnalyticsSessionInfo">
<summary>
<para>Accesses for Analytics session information (common for all game instances).</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.AnalyticsSessionInfo.sessionElapsedTime">
<summary>
<para>Session time since the begining of player game session.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.AnalyticsSessionInfo.sessionId">
<summary>
<para>Session id is used for tracking player game session.</para>
</summary>
</member>
<member name="P:UnityEngine.Analytics.AnalyticsSessionInfo.sessionState">
<summary>
<para>Session state.</para>
</summary>
</member>
<member name="?:UnityEngine.Analytics.AnalyticsSessionInfo.sessionStateChanged(UnityEngine.Analytics.AnalyticsSessionInfo/SessionStateChanged)">
<summary>
<para>This event occurs when a Analytics session state changes.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Analytics.AnalyticsSessionInfo.userId">
<summary>
<para>UserId is random GUID to track a player and is persisted across game session.</para>
</summary>
</member>
<member name="T:UnityEngine.Analytics.AnalyticsSessionInfo.SessionStateChanged">
<summary>
<para>This event occurs when a Analytics session state changes.</para>
</summary>
<param name="sessionState">Current session state.</param>
<param name="sessionId">Current session id.</param>
<param name="sessionElapsedTime">Game player current session time.</param>
<param name="sessionChanged">Set to true when sessionId has changed.</param>
</member>
<member name="T:UnityEngine.Analytics.AnalyticsSessionState">
<summary>
<para>Session tracking states.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsSessionState.kSessionPaused">
<summary>
<para>Session tracking has paused.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsSessionState.kSessionResumed">
<summary>
<para>Session tracking has resumed.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsSessionState.kSessionStarted">
<summary>
<para>Session tracking has started.</para>
</summary>
</member>
<member name="F:UnityEngine.Analytics.AnalyticsSessionState.kSessionStopped">
<summary>
<para>Session tracking has stopped.</para>
</summary>
</member>
<member name="T:UnityEngine.RemoteSettings">
<summary>
<para>Accesses remote settings (common for all game instances).</para>
</summary>
</member>
<member name="M:UnityEngine.RemoteSettings.ForceUpdate">
<summary>
<para>Forces the game to download the newest settings from the server and update its values.</para>
</summary>
</member>
<member name="M:UnityEngine.RemoteSettings.GetBool(System.String)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetBool(System.String,System.Boolean)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetCount">
<summary>
<para>Returns number of keys in remote settings.</para>
</summary>
</member>
<member name="M:UnityEngine.RemoteSettings.GetFloat(System.String)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetFloat(System.String,System.Single)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetInt(System.String)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetInt(System.String,System.Int32)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetKeys">
<summary>
<para>Returns all the keys in remote settings.</para>
</summary>
</member>
<member name="M:UnityEngine.RemoteSettings.GetString(System.String)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.GetString(System.String,System.String)">
<summary>
<para>Returns the value corresponding to key in the remote settings if it exists.</para>
</summary>
<param name="key"></param>
<param name="defaultValue"></param>
</member>
<member name="M:UnityEngine.RemoteSettings.HasKey(System.String)">
<summary>
<para>Returns true if key exists in the remote settings.</para>
</summary>
<param name="key"></param>
</member>
<member name="?:UnityEngine.RemoteSettings.Updated(UnityEngine.RemoteSettings/UpdatedEventHandler)">
<summary>
<para>This event occurs when a new RemoteSettings is fetched and successfully parsed from the server.</para>
</summary>
<param name="value"></param>
</member>
<member name="T:UnityEngine.RemoteSettings.UpdatedEventHandler">
<summary>
<para>This event occurs when a new RemoteSettings is fetched and successfully parsed from the server.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityWebRequestAudioModule</name>
</assembly>
<member name="T:UnityEngine.Networking.DownloadHandlerAudioClip">
<summary>
<para>A DownloadHandler subclass specialized for downloading audio data for use as AudioClip objects.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandlerAudioClip.audioClip">
<summary>
<para>Returns the downloaded AudioClip, or null. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAudioClip.#ctor(System.String,UnityEngine.AudioType)">
<summary>
<para>Constructor, specifies what kind of audio data is going to be downloaded.</para>
</summary>
<param name="url">The nominal (pre-redirect) URL at which the audio clip is located.</param>
<param name="audioType">Value to set for AudioClip type.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAudioClip.GetContent(UnityEngine.Networking.UnityWebRequest)">
<summary>
<para>Returns the downloaded AudioClip, or null.</para>
</summary>
<param name="www">A finished UnityWebRequest object with DownloadHandlerAudioClip attached.</param>
<returns>
<para>The same as DownloadHandlerAudioClip.audioClip</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAudioClip.GetData">
<summary>
<para>Called by DownloadHandler.data. Returns a copy of the downloaded clip data as raw bytes.</para>
</summary>
<returns>
<para>A copy of the downloaded data.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.DownloadHandlerMovieTexture">
<summary>
<para>A specialized DownloadHandler for creating MovieTexture out of downloaded bytes.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandlerMovieTexture.movieTexture">
<summary>
<para>A MovieTexture created out of downloaded bytes.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerMovieTexture.#ctor">
<summary>
<para>Create new DownloadHandlerMovieTexture.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerMovieTexture.GetContent(UnityEngine.Networking.UnityWebRequest)">
<summary>
<para>A convenience (helper) method for casting DownloadHandler to DownloadHandlerMovieTexture and accessing its movieTexture property.</para>
</summary>
<param name="uwr">A UnityWebRequest with attached DownloadHandlerMovieTexture.</param>
<returns>
<para>A MovieTexture created out of downloaded bytes.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerMovieTexture.GetData">
<summary>
<para>Raw downloaded data.</para>
</summary>
<returns>
<para>Raw downloaded bytes.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.UnityWebRequestMultimedia">
<summary>
<para>Helpers for downloading multimedia files using UnityWebRequest.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequestMultimedia.GetAudioClip(System.String,UnityEngine.AudioType)">
<summary>
<para>Create a UnityWebRequest to download an audio clip via HTTP GET and create an AudioClip based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the audio clip to download.</param>
<param name="audioType">The type of audio encoding for the downloaded audio clip. See AudioType.</param>
<returns>
<para>A UnityWebRequest properly configured to download an audio clip and convert it to an AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequestMultimedia.GetMovieTexture(System.String)">
<summary>
<para>Create a UnityWebRequest intended to download a movie clip via HTTP GET and create an MovieTexture based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the movie clip to download.</param>
<returns>
<para>A UnityWebRequest properly configured to download a movie clip and convert it to a MovieTexture.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityWebRequestModule</name>
</assembly>
<member name="T:UnityEngine.Networking.DownloadHandler">
<summary>
<para>Manage and process HTTP response body data received from a remote server.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandler.data">
<summary>
<para>Returns the raw bytes downloaded from the remote server, or null. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandler.isDone">
<summary>
<para>Returns true if this DownloadHandler has been informed by its parent UnityWebRequest that all data has been received, and this DownloadHandler has completed any necessary post-download processing. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandler.text">
<summary>
<para>Convenience property. Returns the bytes from data interpreted as a UTF8 string. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.CompleteContent">
<summary>
<para>Callback, invoked when all data has been received from the remote server.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.Dispose">
<summary>
<para>Signals that this [DownloadHandler] is no longer being used, and should clean up any resources it is using.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.GetData">
<summary>
<para>Callback, invoked when the data property is accessed.</para>
</summary>
<returns>
<para>Byte array to return as the value of the data property.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.GetProgress">
<summary>
<para>Callback, invoked when UnityWebRequest.downloadProgress is accessed.</para>
</summary>
<returns>
<para>The return value for UnityWebRequest.downloadProgress.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.GetText">
<summary>
<para>Callback, invoked when the text property is accessed.</para>
</summary>
<returns>
<para>String to return as the return value of the text property.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.ReceiveContentLength(System.Int32)">
<summary>
<para>Callback, invoked with a Content-Length header is received.</para>
</summary>
<param name="contentLength">The value of the received Content-Length header.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandler.ReceiveData(System.Byte[],System.Int32)">
<summary>
<para>Callback, invoked as data is received from the remote server.</para>
</summary>
<param name="data">A buffer containing unprocessed data, received from the remote server.</param>
<param name="dataLength">The number of bytes in data which are new.</param>
<returns>
<para>True if the download should continue, false to abort.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.DownloadHandlerAssetBundle">
<summary>
<para>A DownloadHandler subclass specialized for downloading AssetBundles.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandlerAssetBundle.assetBundle">
<summary>
<para>Returns the downloaded AssetBundle, or null. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.#ctor(System.String,System.UInt32)">
<summary>
<para>Standard constructor for non-cached asset bundles.</para>
</summary>
<param name="url">The nominal (pre-redirect) URL at which the asset bundle is located.</param>
<param name="crc">A checksum to compare to the downloaded data for integrity checking, or zero to skip integrity checking.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.#ctor(System.String,System.UInt32,System.UInt32)">
<summary>
<para>Simple versioned constructor. Caches downloaded asset bundles.</para>
</summary>
<param name="url">The nominal (pre-redirect) URL at which the asset bundle is located.</param>
<param name="crc">A checksum to compare to the downloaded data for integrity checking, or zero to skip integrity checking.</param>
<param name="version">Current version number of the asset bundle at url. Increment to redownload.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.#ctor(System.String,UnityEngine.Hash128,System.UInt32)">
<summary>
<para>Versioned constructor. Caches downloaded asset bundles.</para>
</summary>
<param name="url">The nominal (pre-redirect) URL at which the asset bundle is located.</param>
<param name="crc">A checksum to compare to the downloaded data for integrity checking, or zero to skip integrity checking.</param>
<param name="hash">A hash object defining the version of the asset bundle.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.GetContent(UnityEngine.Networking.UnityWebRequest)">
<summary>
<para>Returns the downloaded AssetBundle, or null.</para>
</summary>
<param name="www">A finished UnityWebRequest object with DownloadHandlerAssetBundle attached.</param>
<returns>
<para>The same as DownloadHandlerAssetBundle.assetBundle</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.GetData">
<summary>
<para>Not implemented. Throws &lt;a href="http:msdn.microsoft.comen-uslibrarysystem.notsupportedexception"&gt;NotSupportedException&lt;a&gt;.</para>
</summary>
<returns>
<para>Not implemented.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerAssetBundle.GetText">
<summary>
<para>Not implemented. Throws &lt;a href="http:msdn.microsoft.comen-uslibrarysystem.notsupportedexception"&gt;NotSupportedException&lt;a&gt;.</para>
</summary>
<returns>
<para>Not implemented.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.DownloadHandlerBuffer">
<summary>
<para>A general-purpose DownloadHandler implementation which stores received data in a native byte buffer.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerBuffer.#ctor">
<summary>
<para>Default constructor.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerBuffer.GetContent(UnityEngine.Networking.UnityWebRequest)">
<summary>
<para>Returns a copy of the native-memory buffer interpreted as a UTF8 string.</para>
</summary>
<param name="www">A finished UnityWebRequest object with DownloadHandlerBuffer attached.</param>
<returns>
<para>The same as DownloadHandlerBuffer.text</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerBuffer.GetData">
<summary>
<para>Returns a copy of the contents of the native-memory data buffer as a byte array.</para>
</summary>
<returns>
<para>A copy of the data which has been downloaded.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.DownloadHandlerFile">
<summary>
<para>Download handler for saving the downloaded data to file.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandlerFile.removeFileOnAbort">
<summary>
<para>Should the created file be removed if download is aborted (manually or due to an error). Default: false.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerFile.#ctor(System.String)">
<summary>
<para>Creates a new instance and a file on disk where downloaded data will be written to.</para>
</summary>
<param name="path">Path to file to be written.</param>
</member>
<member name="T:UnityEngine.Networking.DownloadHandlerScript">
<summary>
<para>An abstract base class for user-created scripting-driven DownloadHandler implementations.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerScript.#ctor">
<summary>
<para>Create a DownloadHandlerScript which allocates new buffers when passing data to callbacks.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerScript.#ctor(System.Byte[])">
<summary>
<para>Create a DownloadHandlerScript which reuses a preallocated buffer to pass data to callbacks.</para>
</summary>
<param name="preallocatedBuffer">A byte buffer into which data will be copied, for use by DownloadHandler.ReceiveData.</param>
</member>
<member name="?:UnityEngine.Networking.IMultipartFormSection">
<summary>
<para>An interface for composition of data into multipart forms.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.IMultipartFormSection.contentType">
<summary>
<para>Returns the value to use in the Content-Type header for this form section.</para>
</summary>
<returns>
<para>The value to use in the Content-Type header, or null.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.IMultipartFormSection.fileName">
<summary>
<para>Returns a string denoting the desired filename of this section on the destination server.</para>
</summary>
<returns>
<para>The desired file name of this section, or null if this is not a file section.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.IMultipartFormSection.sectionData">
<summary>
<para>Returns the raw binary data contained in this section. Must not return null or a zero-length array.</para>
</summary>
<returns>
<para>The raw binary data contained in this section. Must not be null or empty.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.IMultipartFormSection.sectionName">
<summary>
<para>Returns the name of this section, if any.</para>
</summary>
<returns>
<para>The section's name, or null.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.MultipartFormDataSection">
<summary>
<para>A helper object for form sections containing generic, non-file data.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.MultipartFormDataSection.contentType">
<summary>
<para>Returns the value to use in this section's Content-Type header.</para>
</summary>
<returns>
<para>The Content-Type header for this section, or null.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormDataSection.fileName">
<summary>
<para>Returns a string denoting the desired filename of this section on the destination server.</para>
</summary>
<returns>
<para>The desired file name of this section, or null if this is not a file section.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormDataSection.sectionData">
<summary>
<para>Returns the raw binary data contained in this section. Will not return null or a zero-length array.</para>
</summary>
<returns>
<para>The raw binary data contained in this section. Will not be null or empty.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormDataSection.sectionName">
<summary>
<para>Returns the name of this section, if any.</para>
</summary>
<returns>
<para>The section's name, or null.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.Byte[])">
<summary>
<para>Raw data section, unnamed and no Content-Type header.</para>
</summary>
<param name="data">Data payload of this section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String,System.Byte[])">
<summary>
<para>Raw data section with a section name, no Content-Type header.</para>
</summary>
<param name="name">Section name.</param>
<param name="data">Data payload of this section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String,System.Byte[],System.String)">
<summary>
<para>A raw data section with a section name and a Content-Type header.</para>
</summary>
<param name="name">Section name.</param>
<param name="data">Data payload of this section.</param>
<param name="contentType">The value for this section's Content-Type header.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String,System.String,System.Text.Encoding,System.String)">
<summary>
<para>A named raw data section whose payload is derived from a string, with a Content-Type header.</para>
</summary>
<param name="name">Section name.</param>
<param name="data">String data payload for this section.</param>
<param name="contentType">The value for this section's Content-Type header.</param>
<param name="encoding">An encoding to marshal data to or from raw bytes.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String,System.String,System.String)">
<summary>
<para>A named raw data section whose payload is derived from a UTF8 string, with a Content-Type header.</para>
</summary>
<param name="name">Section name.</param>
<param name="data">String data payload for this section.</param>
<param name="contentType">C.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String,System.String)">
<summary>
<para>A names raw data section whose payload is derived from a UTF8 string, with a default Content-Type.</para>
</summary>
<param name="name">Section name.</param>
<param name="data">String data payload for this section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormDataSection.#ctor(System.String)">
<summary>
<para>An anonymous raw data section whose payload is derived from a UTF8 string, with a default Content-Type.</para>
</summary>
<param name="data">String data payload for this section.</param>
</member>
<member name="T:UnityEngine.Networking.MultipartFormFileSection">
<summary>
<para>A helper object for adding file uploads to multipart forms via the [IMultipartFormSection] API.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.MultipartFormFileSection.contentType">
<summary>
<para>Returns the value of the section's Content-Type header.</para>
</summary>
<returns>
<para>The Content-Type header for this section, or null.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormFileSection.fileName">
<summary>
<para>Returns a string denoting the desired filename of this section on the destination server.</para>
</summary>
<returns>
<para>The desired file name of this section, or null if this is not a file section.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormFileSection.sectionData">
<summary>
<para>Returns the raw binary data contained in this section. Will not return null or a zero-length array.</para>
</summary>
<returns>
<para>The raw binary data contained in this section. Will not be null or empty.</para>
</returns>
</member>
<member name="P:UnityEngine.Networking.MultipartFormFileSection.sectionName">
<summary>
<para>Returns the name of this section, if any.</para>
</summary>
<returns>
<para>The section's name, or null.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.String,System.Byte[],System.String,System.String)">
<summary>
<para>Contains a named file section based on the raw bytes from data, with a custom Content-Type and file name.</para>
</summary>
<param name="name">Name of this form section.</param>
<param name="data">Raw contents of the file to upload.</param>
<param name="fileName">Name of the file uploaded by this form section.</param>
<param name="contentType">The value for this section's Content-Type header.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.Byte[])">
<summary>
<para>Contains an anonymous file section based on the raw bytes from data, assigns a default Content-Type and file name.</para>
</summary>
<param name="data">Raw contents of the file to upload.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.String,System.Byte[])">
<summary>
<para>Contains an anonymous file section based on the raw bytes from data with a specific file name. Assigns a default Content-Type.</para>
</summary>
<param name="data">Raw contents of the file to upload.</param>
<param name="fileName">Name of the file uploaded by this form section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.String,System.String,System.Text.Encoding,System.String)">
<summary>
<para>Contains a named file section with data drawn from data, as marshaled by dataEncoding. Assigns a specific file name from fileName and a default Content-Type.</para>
</summary>
<param name="name">Name of this form section.</param>
<param name="data">Contents of the file to upload.</param>
<param name="dataEncoding">A string encoding.</param>
<param name="fileName">Name of the file uploaded by this form section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.String,System.Text.Encoding,System.String)">
<summary>
<para>An anonymous file section with data drawn from data, as marshaled by dataEncoding. Assigns a specific file name from fileName and a default Content-Type.</para>
</summary>
<param name="data">Contents of the file to upload.</param>
<param name="dataEncoding">A string encoding.</param>
<param name="fileName">Name of the file uploaded by this form section.</param>
</member>
<member name="M:UnityEngine.Networking.MultipartFormFileSection.#ctor(System.String,System.String)">
<summary>
<para>An anonymous file section with data drawn from the UTF8 string data. Assigns a specific file name from fileName and a default Content-Type.</para>
</summary>
<param name="data">Contents of the file to upload.</param>
<param name="fileName">Name of the file uploaded by this form section.</param>
</member>
<member name="T:UnityEngine.Networking.UnityWebRequest">
<summary>
<para>The UnityWebRequest object is used to communicate with web servers.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.chunkedTransfer">
<summary>
<para>Indicates whether the UnityWebRequest system should employ the HTTP/1.1 chunked-transfer encoding method.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.disposeDownloadHandlerOnDispose">
<summary>
<para>If true, any DownloadHandler attached to this UnityWebRequest will have DownloadHandler.Dispose called automatically when UnityWebRequest.Dispose is called.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.disposeUploadHandlerOnDispose">
<summary>
<para>If true, any UploadHandler attached to this UnityWebRequest will have UploadHandler.Dispose called automatically when UnityWebRequest.Dispose is called.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.downloadedBytes">
<summary>
<para>Returns the number of bytes of body data the system has downloaded from the remote server. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.downloadHandler">
<summary>
<para>Holds a reference to a DownloadHandler object, which manages body data received from the remote server by this UnityWebRequest.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.downloadProgress">
<summary>
<para>Returns a floating-point value between 0.0 and 1.0, indicating the progress of downloading body data from the server. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.error">
<summary>
<para>A human-readable string describing any system errors encountered by this UnityWebRequest object while handling HTTP requests or responses. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.isDone">
<summary>
<para>Returns true after the UnityWebRequest has finished communicating with the remote server. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.isHttpError">
<summary>
<para>Returns true after this UnityWebRequest receives an HTTP response code indicating an error. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.isModifiable">
<summary>
<para>Returns true while a UnityWebRequest’s configuration properties can be altered. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.isNetworkError">
<summary>
<para>Returns true after this UnityWebRequest encounters a system error. (Read Only)</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbCREATE">
<summary>
<para>The string "CREATE", commonly used as the verb for an HTTP CREATE request.</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbDELETE">
<summary>
<para>The string "DELETE", commonly used as the verb for an HTTP DELETE request.</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbGET">
<summary>
<para>The string "GET", commonly used as the verb for an HTTP GET request.</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbHEAD">
<summary>
<para>The string "HEAD", commonly used as the verb for an HTTP HEAD request.</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbPOST">
<summary>
<para>The string "POST", commonly used as the verb for an HTTP POST request.</para>
</summary>
</member>
<member name="F:UnityEngine.Networking.UnityWebRequest.kHttpVerbPUT">
<summary>
<para>The string "PUT", commonly used as the verb for an HTTP PUT request.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.method">
<summary>
<para>Defines the HTTP verb used by this UnityWebRequest, such as GET or POST.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.redirectLimit">
<summary>
<para>Indicates the number of redirects which this UnityWebRequest will follow before halting with a “Redirect Limit Exceeded” system error.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.responseCode">
<summary>
<para>The numeric HTTP response code returned by the server, such as 200, 404 or 500. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.timeout">
<summary>
<para>Sets UnityWebRequest to attempt to abort after the number of seconds in timeout have passed.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.uploadedBytes">
<summary>
<para>Returns the number of bytes of body data the system has uploaded to the remote server. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.uploadHandler">
<summary>
<para>Holds a reference to the UploadHandler object which manages body data to be uploaded to the remote server.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.uploadProgress">
<summary>
<para>Returns a floating-point value between 0.0 and 1.0, indicating the progress of uploading body data to the server.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.url">
<summary>
<para>Defines the target URL for the UnityWebRequest to communicate with.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequest.useHttpContinue">
<summary>
<para>Determines whether this UnityWebRequest will include Expect: 100-Continue in its outgoing request headers. (Default: true).</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Abort">
<summary>
<para>If in progress, halts the UnityWebRequest as soon as possible.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.#ctor">
<summary>
<para>Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is GET.</para>
</summary>
<param name="url">The target URL with which this UnityWebRequest will communicate. Also accessible via the url property.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.#ctor(System.String)">
<summary>
<para>Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler. Default method is GET.</para>
</summary>
<param name="url">The target URL with which this UnityWebRequest will communicate. Also accessible via the url property.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Delete(System.String)">
<summary>
<para>Creates a UnityWebRequest configured for HTTP DELETE.</para>
</summary>
<param name="uri">The URI to which a DELETE request should be sent.</param>
<returns>
<para>A UnityWebRequest configured to send an HTTP DELETE request.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Dispose">
<summary>
<para>Signals that this [UnityWebRequest] is no longer being used, and should clean up any resources it is using.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.EscapeURL(System.String)">
<summary>
<para>Escapes characters in a string to ensure they are URL-friendly.</para>
</summary>
<param name="s">A string with characters to be escaped.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.EscapeURL(System.String,System.Text.Encoding)">
<summary>
<para>Escapes characters in a string to ensure they are URL-friendly.</para>
</summary>
<param name="s">A string with characters to be escaped.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GenerateBoundary">
<summary>
<para>Generate a random 40-byte array for use as a multipart form boundary.</para>
</summary>
<returns>
<para>40 random bytes, guaranteed to contain only printable ASCII values.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Get(System.String)">
<summary>
<para>Creates a UnityWebRequest configured for HTTP GET.</para>
</summary>
<param name="uri">The URI of the resource to retrieve via HTTP GET.</param>
<returns>
<para>A UnityWebRequest object configured to retrieve data from uri.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetAssetBundle(System.String,System.UInt32)">
<summary>
<para>Creates a UnityWebRequest optimized for downloading a Unity Asset Bundle via HTTP GET.</para>
</summary>
<param name="uri">The URI of the asset bundle to download.</param>
<param name="crc">If nonzero, this number will be compared to the checksum of the downloaded asset bundle data. If the CRCs do not match, an error will be logged and the asset bundle will not be loaded. If set to zero, CRC checking will be skipped.</param>
<param name="version">An integer version number, which will be compared to the cached version of the asset bundle to download. Increment this number to force Unity to redownload a cached asset bundle.
Analogous to the version parameter for WWW.LoadFromCacheOrDownload.</param>
<param name="hash">A version hash. If this hash does not match the hash for the cached version of this asset bundle, the asset bundle will be redownloaded.</param>
<param name="cachedAssetBundle">A structure used to download a given version of AssetBundle to a customized cache path.</param>
<returns>
<para>A UnityWebRequest configured to downloading a Unity Asset Bundle.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetAssetBundle(System.String,System.UInt32,System.UInt32)">
<summary>
<para>Creates a UnityWebRequest optimized for downloading a Unity Asset Bundle via HTTP GET.</para>
</summary>
<param name="uri">The URI of the asset bundle to download.</param>
<param name="crc">If nonzero, this number will be compared to the checksum of the downloaded asset bundle data. If the CRCs do not match, an error will be logged and the asset bundle will not be loaded. If set to zero, CRC checking will be skipped.</param>
<param name="version">An integer version number, which will be compared to the cached version of the asset bundle to download. Increment this number to force Unity to redownload a cached asset bundle.
Analogous to the version parameter for WWW.LoadFromCacheOrDownload.</param>
<param name="hash">A version hash. If this hash does not match the hash for the cached version of this asset bundle, the asset bundle will be redownloaded.</param>
<param name="cachedAssetBundle">A structure used to download a given version of AssetBundle to a customized cache path.</param>
<returns>
<para>A UnityWebRequest configured to downloading a Unity Asset Bundle.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetAssetBundle(System.String,UnityEngine.Hash128,System.UInt32)">
<summary>
<para>Creates a UnityWebRequest optimized for downloading a Unity Asset Bundle via HTTP GET.</para>
</summary>
<param name="uri">The URI of the asset bundle to download.</param>
<param name="crc">If nonzero, this number will be compared to the checksum of the downloaded asset bundle data. If the CRCs do not match, an error will be logged and the asset bundle will not be loaded. If set to zero, CRC checking will be skipped.</param>
<param name="version">An integer version number, which will be compared to the cached version of the asset bundle to download. Increment this number to force Unity to redownload a cached asset bundle.
Analogous to the version parameter for WWW.LoadFromCacheOrDownload.</param>
<param name="hash">A version hash. If this hash does not match the hash for the cached version of this asset bundle, the asset bundle will be redownloaded.</param>
<param name="cachedAssetBundle">A structure used to download a given version of AssetBundle to a customized cache path.</param>
<returns>
<para>A UnityWebRequest configured to downloading a Unity Asset Bundle.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetAssetBundle(System.String,UnityEngine.CachedAssetBundle,System.UInt32)">
<summary>
<para>Creates a UnityWebRequest optimized for downloading a Unity Asset Bundle via HTTP GET.</para>
</summary>
<param name="uri">The URI of the asset bundle to download.</param>
<param name="crc">If nonzero, this number will be compared to the checksum of the downloaded asset bundle data. If the CRCs do not match, an error will be logged and the asset bundle will not be loaded. If set to zero, CRC checking will be skipped.</param>
<param name="version">An integer version number, which will be compared to the cached version of the asset bundle to download. Increment this number to force Unity to redownload a cached asset bundle.
Analogous to the version parameter for WWW.LoadFromCacheOrDownload.</param>
<param name="hash">A version hash. If this hash does not match the hash for the cached version of this asset bundle, the asset bundle will be redownloaded.</param>
<param name="cachedAssetBundle">A structure used to download a given version of AssetBundle to a customized cache path.</param>
<returns>
<para>A UnityWebRequest configured to downloading a Unity Asset Bundle.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetAudioClip(System.String,UnityEngine.AudioType)">
<summary>
<para>OBSOLETE. Use UnityWebRequestMultimedia.GetAudioClip().</para>
</summary>
<param name="uri"></param>
<param name="audioType"></param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetRequestHeader(System.String)">
<summary>
<para>Retrieves the value of a custom request header.</para>
</summary>
<param name="name">Name of the custom request header. Case-insensitive.</param>
<returns>
<para>The value of the custom request header. If no custom header with a matching name has been set, returns an empty string.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetResponseHeader(System.String)">
<summary>
<para>Retrieves the value of a response header from the latest HTTP response received.</para>
</summary>
<param name="name">The name of the HTTP header to retrieve. Case-insensitive.</param>
<returns>
<para>The value of the HTTP header from the latest HTTP response. If no header with a matching name has been received, or no responses have been received, returns null.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetResponseHeaders">
<summary>
<para>Retrieves a dictionary containing all the response headers received by this UnityWebRequest in the latest HTTP response.</para>
</summary>
<returns>
<para>A dictionary containing all the response headers received in the latest HTTP response. If no responses have been received, returns null.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetTexture(System.String)">
<summary>
<para>Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the image to download.</param>
<param name="nonReadable">If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false.</param>
<returns>
<para>A UnityWebRequest properly configured to download an image and convert it to a Texture.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.GetTexture(System.String,System.Boolean)">
<summary>
<para>Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the image to download.</param>
<param name="nonReadable">If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false.</param>
<returns>
<para>A UnityWebRequest properly configured to download an image and convert it to a Texture.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Head(System.String)">
<summary>
<para>Creates a UnityWebRequest configured to send a HTTP HEAD request.</para>
</summary>
<param name="uri">The URI to which to send a HTTP HEAD request.</param>
<returns>
<para>A UnityWebRequest configured to transmit a HTTP HEAD request.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Post(System.String,System.String)">
<summary>
<para>Create a UnityWebRequest configured to send form data to a server via HTTP POST.</para>
</summary>
<param name="uri">The target URI to which form data will be transmitted.</param>
<param name="postData">Form body data. Will be URLEncoded prior to transmission.</param>
<returns>
<para>A UnityWebRequest configured to send form data to uri via POST.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Post(System.String,UnityEngine.WWWForm)">
<summary>
<para>Create a UnityWebRequest configured to send form data to a server via HTTP POST.</para>
</summary>
<param name="uri">The target URI to which form data will be transmitted.</param>
<param name="formData">Form fields or files encapsulated in a WWWForm object, for formatting and transmission to the remote server.</param>
<returns>
<para>A UnityWebRequest configured to send form data to uri via POST.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Post(System.String,System.Collections.Generic.List`1&lt;UnityEngine.Networking.IMultipartFormSection&gt;)">
<summary>
<para>Create a UnityWebRequest configured to send form data to a server via HTTP POST.</para>
</summary>
<param name="uri">The target URI to which form data will be transmitted.</param>
<param name="multipartFormSections">A list of form fields or files to be formatted and transmitted to the remote server.</param>
<param name="boundary">A unique boundary string, which will be used when separating form fields in a multipart form. If not supplied, a boundary will be generated for you.</param>
<returns>
<para>A UnityWebRequest configured to send form data to uri via POST.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Post(System.String,System.Collections.Generic.List`1&lt;UnityEngine.Networking.IMultipartFormSection&gt;,System.Byte[])">
<summary>
<para>Create a UnityWebRequest configured to send form data to a server via HTTP POST.</para>
</summary>
<param name="uri">The target URI to which form data will be transmitted.</param>
<param name="multipartFormSections">A list of form fields or files to be formatted and transmitted to the remote server.</param>
<param name="boundary">A unique boundary string, which will be used when separating form fields in a multipart form. If not supplied, a boundary will be generated for you.</param>
<returns>
<para>A UnityWebRequest configured to send form data to uri via POST.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Post(System.String,System.Collections.Generic.Dictionary`2&lt;System.String,System.String&gt;)">
<summary>
<para>Create a UnityWebRequest configured to send form data to a server via HTTP POST.</para>
</summary>
<param name="uri">The target URI to which form data will be transmitted.</param>
<param name="formFields">Strings indicating the keys and values of form fields. Will be automatically formatted into a URL-encoded form body.</param>
<returns>
<para>A UnityWebRequest configured to send form data to uri via POST.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Put(System.String,System.Byte[])">
<summary>
<para>Create a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.</para>
</summary>
<param name="uri">The URI to which the data will be sent.</param>
<param name="bodyData">The data to transmit to the remote server.
If a string, the string will be converted to raw bytes via &lt;a href="http:msdn.microsoft.comen-uslibrarysystem.text.encoding.utf8"&gt;System.Text.Encoding.UTF8&lt;a&gt;.</param>
<returns>
<para>A UnityWebRequest configured to transmit bodyData to uri via HTTP PUT.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Put(System.String,System.String)">
<summary>
<para>Create a UnityWebRequest configured to upload raw data to a remote server via HTTP PUT.</para>
</summary>
<param name="uri">The URI to which the data will be sent.</param>
<param name="bodyData">The data to transmit to the remote server.
If a string, the string will be converted to raw bytes via &lt;a href="http:msdn.microsoft.comen-uslibrarysystem.text.encoding.utf8"&gt;System.Text.Encoding.UTF8&lt;a&gt;.</param>
<returns>
<para>A UnityWebRequest configured to transmit bodyData to uri via HTTP PUT.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.Send">
<summary>
<para>Begin communicating with the remote server.</para>
</summary>
<returns>
<para>An AsyncOperation indicating the progress/completion state of the UnityWebRequest. Yield this object to wait until the UnityWebRequest is done.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.SendWebRequest">
<summary>
<para>Begin communicating with the remote server.
After calling this method, the UnityWebRequest will perform DNS resolution (if necessary), transmit an HTTP request to the remote server at the target URL and process the server’s response.
This method can only be called once on any given UnityWebRequest object. Once this method is called, you cannot change any of the UnityWebRequest’s properties.
This method returns a WebRequestAsyncOperation object. Yielding the WebRequestAsyncOperation inside a coroutine will cause the coroutine to pause until the UnityWebRequest encounters a system error or finishes communicating.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.SerializeFormSections(System.Collections.Generic.List`1&lt;UnityEngine.Networking.IMultipartFormSection&gt;,System.Byte[])">
<summary>
<para>Converts a List of IMultipartFormSection objects into a byte array containing raw multipart form data.</para>
</summary>
<param name="multipartFormSections">A List of IMultipartFormSection objects.</param>
<param name="boundary">A unique boundary string to separate the form sections.</param>
<returns>
<para>A byte array of raw multipart form data.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.SerializeSimpleForm(System.Collections.Generic.Dictionary`2&lt;System.String,System.String&gt;)">
<summary>
<para>Serialize a dictionary of strings into a byte array containing URL-encoded UTF8 characters.</para>
</summary>
<param name="formFields">A dictionary containing the form keys and values to serialize.</param>
<returns>
<para>A byte array containing the serialized form. The form's keys and values have been URL-encoded.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.SetRequestHeader(System.String,System.String)">
<summary>
<para>Set a HTTP request header to a custom value.</para>
</summary>
<param name="name">The key of the header to be set. Case-sensitive.</param>
<param name="value">The header's intended value.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.UnEscapeURL(System.String)">
<summary>
<para>Converts URL-friendly escape sequences back to normal text.</para>
</summary>
<param name="s">A string containing escaped characters.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequest.UnEscapeURL(System.String,System.Text.Encoding)">
<summary>
<para>Converts URL-friendly escape sequences back to normal text.</para>
</summary>
<param name="s">A string containing escaped characters.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="T:UnityEngine.Networking.UnityWebRequestAsyncOperation">
<summary>
<para>Asynchronous operation object returned from UnityWebRequest.SendWebRequest().
You can yield until it continues, register an event handler with AsyncOperation.completed, or manually check whether it's done (AsyncOperation.isDone) or progress (AsyncOperation.progress).</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UnityWebRequestAsyncOperation.webRequest">
<summary>
<para>Returns the associated UnityWebRequest that created the operation.</para>
</summary>
</member>
<member name="T:UnityEngine.Networking.UploadHandler">
<summary>
<para>Helper object for UnityWebRequests. Manages the buffering and transmission of body data during HTTP requests.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UploadHandler.contentType">
<summary>
<para>Determines the default Content-Type header which will be transmitted with the outbound HTTP request.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UploadHandler.data">
<summary>
<para>The raw data which will be transmitted to the remote server as body data. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.UploadHandler.progress">
<summary>
<para>Returns the proportion of data uploaded to the remote server compared to the total amount of data to upload. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UploadHandler.Dispose">
<summary>
<para>Signals that this [UploadHandler] is no longer being used, and should clean up any resources it is using.</para>
</summary>
</member>
<member name="T:UnityEngine.Networking.UploadHandlerRaw">
<summary>
<para>A general-purpose UploadHandler subclass, using a native-code memory buffer.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UploadHandlerRaw.#ctor(System.Byte[])">
<summary>
<para>General constructor. Contents of the input argument are copied into a native buffer.</para>
</summary>
<param name="data">Raw data to transmit to the remote server.</param>
</member>
<member name="T:UnityEngine.WWWForm">
<summary>
<para>Helper class to generate form data to post to web servers using the UnityWebRequest or WWW classes.</para>
</summary>
</member>
<member name="P:UnityEngine.WWWForm.data">
<summary>
<para>(Read Only) The raw data to pass as the POST request body when sending the form.</para>
</summary>
</member>
<member name="P:UnityEngine.WWWForm.headers">
<summary>
<para>(Read Only) Returns the correct request headers for posting the form using the WWW class.</para>
</summary>
</member>
<member name="M:UnityEngine.WWWForm.AddBinaryData(System.String,System.Byte[])">
<summary>
<para>Add binary data to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="contents"></param>
<param name="fileName"></param>
<param name="mimeType"></param>
</member>
<member name="M:UnityEngine.WWWForm.AddBinaryData(System.String,System.Byte[],System.String)">
<summary>
<para>Add binary data to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="contents"></param>
<param name="fileName"></param>
<param name="mimeType"></param>
</member>
<member name="M:UnityEngine.WWWForm.AddBinaryData(System.String,System.Byte[],System.String,System.String)">
<summary>
<para>Add binary data to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="contents"></param>
<param name="fileName"></param>
<param name="mimeType"></param>
</member>
<member name="M:UnityEngine.WWWForm.AddField(System.String,System.String)">
<summary>
<para>Add a simple field to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="value"></param>
<param name="e"></param>
</member>
<member name="M:UnityEngine.WWWForm.AddField(System.String,System.String,System.Text.Encoding)">
<summary>
<para>Add a simple field to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="value"></param>
<param name="e"></param>
</member>
<member name="M:UnityEngine.WWWForm.AddField(System.String,System.Int32)">
<summary>
<para>Adds a simple field to the form.</para>
</summary>
<param name="fieldName"></param>
<param name="i"></param>
</member>
<member name="M:UnityEngine.WWWForm.#ctor">
<summary>
<para>Creates an empty WWWForm object.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityWebRequestTextureModule</name>
</assembly>
<member name="T:UnityEngine.Networking.DownloadHandlerTexture">
<summary>
<para>A DownloadHandler subclass specialized for downloading images for use as Texture objects.</para>
</summary>
</member>
<member name="P:UnityEngine.Networking.DownloadHandlerTexture.texture">
<summary>
<para>Returns the downloaded Texture, or null. (Read Only)</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerTexture.#ctor">
<summary>
<para>Default constructor.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerTexture.#ctor(System.Boolean)">
<summary>
<para>Constructor, allows TextureImporter.isReadable property to be set.</para>
</summary>
<param name="readable">Value to set for TextureImporter.isReadable.</param>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerTexture.GetContent(UnityEngine.Networking.UnityWebRequest)">
<summary>
<para>Returns the downloaded Texture, or null.</para>
</summary>
<param name="www">A finished UnityWebRequest object with DownloadHandlerTexture attached.</param>
<returns>
<para>The same as DownloadHandlerTexture.texture</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.DownloadHandlerTexture.GetData">
<summary>
<para>Called by DownloadHandler.data. Returns a copy of the downloaded image data as raw bytes.</para>
</summary>
<returns>
<para>A copy of the downloaded data.</para>
</returns>
</member>
<member name="T:UnityEngine.Networking.UnityWebRequestTexture">
<summary>
<para>Helpers for downloading image files into Textures using UnityWebRequest.</para>
</summary>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequestTexture.GetTexture(System.String)">
<summary>
<para>Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the image to download.</param>
<param name="nonReadable">If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false.</param>
<returns>
<para>A UnityWebRequest properly configured to download an image and convert it to a Texture.</para>
</returns>
</member>
<member name="M:UnityEngine.Networking.UnityWebRequestTexture.GetTexture(System.String,System.Boolean)">
<summary>
<para>Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data.</para>
</summary>
<param name="uri">The URI of the image to download.</param>
<param name="nonReadable">If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: false.</param>
<returns>
<para>A UnityWebRequest properly configured to download an image and convert it to a Texture.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.UnityWebRequestWWWModule</name>
</assembly>
<member name="T:UnityEngine.WWW">
<summary>
<para>Simple access to web pages.</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.assetBundle">
<summary>
<para>Streams an AssetBundle that can contain any kind of asset from the project folder.</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.audioClip">
<summary>
<para>Returns a AudioClip generated from the downloaded data (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.bytes">
<summary>
<para>Returns the contents of the fetched web page as a byte array (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.bytesDownloaded">
<summary>
<para>The number of bytes downloaded by this WWW query (read only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.error">
<summary>
<para>Returns an error message if there was an error during the download (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.isDone">
<summary>
<para>Is the download already finished? (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.movie">
<summary>
<para>Returns a MovieTexture generated from the downloaded data (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.progress">
<summary>
<para>How far has the download progressed (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.responseHeaders">
<summary>
<para>Dictionary of headers returned by the request.</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.text">
<summary>
<para>Returns the contents of the fetched web page as a string (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.texture">
<summary>
<para>Returns a Texture2D generated from the downloaded data (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.textureNonReadable">
<summary>
<para>Returns a non-readable Texture2D generated from the downloaded data (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.threadPriority">
<summary>
<para>Obsolete, has no effect.</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.uploadProgress">
<summary>
<para>How far has the upload progressed (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WWW.url">
<summary>
<para>The URL of this WWW request (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.WWW.#ctor(System.String)">
<summary>
<para>Creates a WWW request with the given URL.</para>
</summary>
<param name="url">The url to download. Must be '%' escaped.</param>
<returns>
<para>A new WWW object. When it has been downloaded, the results can be fetched from the returned object.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.#ctor(System.String,UnityEngine.WWWForm)">
<summary>
<para>Creates a WWW request with the given URL.</para>
</summary>
<param name="url">The url to download. Must be '%' escaped.</param>
<param name="form">A WWWForm instance containing the form data to post.</param>
<returns>
<para>A new WWW object. When it has been downloaded, the results can be fetched from the returned object.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.#ctor(System.String,System.Byte[])">
<summary>
<para>Creates a WWW request with the given URL.</para>
</summary>
<param name="url">The url to download. Must be '%' escaped.</param>
<param name="postData">A byte array of data to be posted to the url.</param>
<returns>
<para>A new WWW object. When it has been downloaded, the results can be fetched from the returned object.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.#ctor(System.String,System.Byte[],System.Collections.Hashtable)">
<summary>
<para>Creates a WWW request with the given URL.</para>
</summary>
<param name="url">The url to download. Must be '%' escaped.</param>
<param name="postData">A byte array of data to be posted to the url.</param>
<param name="headers">A hash table of custom headers to send with the request.</param>
<returns>
<para>A new WWW object. When it has been downloaded, the results can be fetched from the returned object.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.#ctor(System.String,System.Byte[],System.Collections.Generic.Dictionary`2&lt;System.String,System.String&gt;)">
<summary>
<para>Creates a WWW request with the given URL.</para>
</summary>
<param name="url">The url to download. Must be '%' escaped.</param>
<param name="postData">A byte array of data to be posted to the url.</param>
<param name="headers">A dictionary that contains the header keys and values to pass to the server.</param>
<returns>
<para>A new WWW object. When it has been downloaded, the results can be fetched from the returned object.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.Dispose">
<summary>
<para>Disposes of an existing WWW object.</para>
</summary>
</member>
<member name="M:UnityEngine.WWW.EscapeURL(System.String)">
<summary>
<para>Escapes characters in a string to ensure they are URL-friendly.</para>
</summary>
<param name="s">A string with characters to be escaped.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.WWW.EscapeURL(System.String,System.Text.Encoding)">
<summary>
<para>Escapes characters in a string to ensure they are URL-friendly.</para>
</summary>
<param name="s">A string with characters to be escaped.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.WWW.GetAudioClip(System.Boolean)">
<summary>
<para>Returns an AudioClip generated from the downloaded data (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip
the .audioClip property defaults to 3D.</param>
<param name="stream">Sets whether the clip should be completely downloaded before it's ready to play (false) or the stream can be played even if only part of the clip is downloaded (true).
The latter will disable seeking on the clip (with .time and/or .timeSamples).</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetAudioClip(System.Boolean,System.Boolean)">
<summary>
<para>Returns an AudioClip generated from the downloaded data (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip
the .audioClip property defaults to 3D.</param>
<param name="stream">Sets whether the clip should be completely downloaded before it's ready to play (false) or the stream can be played even if only part of the clip is downloaded (true).
The latter will disable seeking on the clip (with .time and/or .timeSamples).</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetAudioClip(System.Boolean,System.Boolean,UnityEngine.AudioType)">
<summary>
<para>Returns an AudioClip generated from the downloaded data (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip
the .audioClip property defaults to 3D.</param>
<param name="stream">Sets whether the clip should be completely downloaded before it's ready to play (false) or the stream can be played even if only part of the clip is downloaded (true).
The latter will disable seeking on the clip (with .time and/or .timeSamples).</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetAudioClipCompressed">
<summary>
<para>Returns an AudioClip generated from the downloaded data that is compressed in memory (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip.</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetAudioClipCompressed(System.Boolean)">
<summary>
<para>Returns an AudioClip generated from the downloaded data that is compressed in memory (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip.</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetAudioClipCompressed(System.Boolean,UnityEngine.AudioType)">
<summary>
<para>Returns an AudioClip generated from the downloaded data that is compressed in memory (Read Only).</para>
</summary>
<param name="threeD">Use this to specify whether the clip should be a 2D or 3D clip.</param>
<param name="audioType">The AudioType of the content your downloading. If this is not set Unity will try to determine the type from URL.</param>
<returns>
<para>The returned AudioClip.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.GetMovieTexture">
<summary>
<para>Returns a MovieTexture generated from the downloaded data (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.WWW.LoadFromCacheOrDownload(System.String,System.Int32)">
<summary>
<para>Loads an AssetBundle with the specified version number from the cache. If the AssetBundle is not currently cached, it will automatically be downloaded and stored in the cache for future retrieval from local storage.</para>
</summary>
<param name="url">The URL to download the AssetBundle from, if it is not present in the cache. Must be '%' escaped.</param>
<param name="version">Version of the AssetBundle. The file will only be loaded from the disk cache if it has previously been downloaded with the same version parameter. By incrementing the version number requested by your application, you can force Caching to download a new copy of the AssetBundle from url.</param>
<param name="hash">Hash128 which is used as the version of the AssetBundle.</param>
<param name="cachedBundle">A structure used to download a given version of AssetBundle to a customized cache path.
Analogous to the cachedAssetBundle parameter for UnityWebRequest.GetAssetBundle.&lt;/param&gt;</param>
<param name="crc">An optional CRC-32 Checksum of the uncompressed contents. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match. You can use this to avoid data corruption from bad downloads or users tampering with the cached files on disk. If the CRC does not match, Unity will try to redownload the data, and if the CRC on the server does not match it will fail with an error. Look at the error string returned to see the correct CRC value to use for an AssetBundle.</param>
<returns>
<para>A WWW instance, which can be used to access the data once the load/download operation is completed.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.LoadFromCacheOrDownload(System.String,System.Int32,System.UInt32)">
<summary>
<para>Loads an AssetBundle with the specified version number from the cache. If the AssetBundle is not currently cached, it will automatically be downloaded and stored in the cache for future retrieval from local storage.</para>
</summary>
<param name="url">The URL to download the AssetBundle from, if it is not present in the cache. Must be '%' escaped.</param>
<param name="version">Version of the AssetBundle. The file will only be loaded from the disk cache if it has previously been downloaded with the same version parameter. By incrementing the version number requested by your application, you can force Caching to download a new copy of the AssetBundle from url.</param>
<param name="hash">Hash128 which is used as the version of the AssetBundle.</param>
<param name="cachedBundle">A structure used to download a given version of AssetBundle to a customized cache path.
Analogous to the cachedAssetBundle parameter for UnityWebRequest.GetAssetBundle.&lt;/param&gt;</param>
<param name="crc">An optional CRC-32 Checksum of the uncompressed contents. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match. You can use this to avoid data corruption from bad downloads or users tampering with the cached files on disk. If the CRC does not match, Unity will try to redownload the data, and if the CRC on the server does not match it will fail with an error. Look at the error string returned to see the correct CRC value to use for an AssetBundle.</param>
<returns>
<para>A WWW instance, which can be used to access the data once the load/download operation is completed.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.LoadFromCacheOrDownload(System.String,UnityEngine.Hash128,System.UInt32)">
<summary>
<para>Loads an AssetBundle with the specified version number from the cache. If the AssetBundle is not currently cached, it will automatically be downloaded and stored in the cache for future retrieval from local storage.</para>
</summary>
<param name="url">The URL to download the AssetBundle from, if it is not present in the cache. Must be '%' escaped.</param>
<param name="version">Version of the AssetBundle. The file will only be loaded from the disk cache if it has previously been downloaded with the same version parameter. By incrementing the version number requested by your application, you can force Caching to download a new copy of the AssetBundle from url.</param>
<param name="hash">Hash128 which is used as the version of the AssetBundle.</param>
<param name="cachedBundle">A structure used to download a given version of AssetBundle to a customized cache path.
Analogous to the cachedAssetBundle parameter for UnityWebRequest.GetAssetBundle.&lt;/param&gt;</param>
<param name="crc">An optional CRC-32 Checksum of the uncompressed contents. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match. You can use this to avoid data corruption from bad downloads or users tampering with the cached files on disk. If the CRC does not match, Unity will try to redownload the data, and if the CRC on the server does not match it will fail with an error. Look at the error string returned to see the correct CRC value to use for an AssetBundle.</param>
<returns>
<para>A WWW instance, which can be used to access the data once the load/download operation is completed.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.LoadFromCacheOrDownload(System.String,UnityEngine.CachedAssetBundle,System.UInt32)">
<summary>
<para>Loads an AssetBundle with the specified version number from the cache. If the AssetBundle is not currently cached, it will automatically be downloaded and stored in the cache for future retrieval from local storage.</para>
</summary>
<param name="url">The URL to download the AssetBundle from, if it is not present in the cache. Must be '%' escaped.</param>
<param name="version">Version of the AssetBundle. The file will only be loaded from the disk cache if it has previously been downloaded with the same version parameter. By incrementing the version number requested by your application, you can force Caching to download a new copy of the AssetBundle from url.</param>
<param name="hash">Hash128 which is used as the version of the AssetBundle.</param>
<param name="cachedBundle">A structure used to download a given version of AssetBundle to a customized cache path.
Analogous to the cachedAssetBundle parameter for UnityWebRequest.GetAssetBundle.&lt;/param&gt;</param>
<param name="crc">An optional CRC-32 Checksum of the uncompressed contents. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match. You can use this to avoid data corruption from bad downloads or users tampering with the cached files on disk. If the CRC does not match, Unity will try to redownload the data, and if the CRC on the server does not match it will fail with an error. Look at the error string returned to see the correct CRC value to use for an AssetBundle.</param>
<returns>
<para>A WWW instance, which can be used to access the data once the load/download operation is completed.</para>
</returns>
</member>
<member name="M:UnityEngine.WWW.LoadImageIntoTexture(UnityEngine.Texture2D)">
<summary>
<para>Replaces the contents of an existing Texture2D with an image from the downloaded data.</para>
</summary>
<param name="tex">An existing texture object to be overwritten with the image data.</param>
<param name="texture"></param>
</member>
<member name="M:UnityEngine.WWW.UnEscapeURL(System.String)">
<summary>
<para>Converts URL-friendly escape sequences back to normal text.</para>
</summary>
<param name="s">A string containing escaped characters.</param>
<param name="e">The text encoding to use.</param>
</member>
<member name="M:UnityEngine.WWW.UnEscapeURL(System.String,System.Text.Encoding)">
<summary>
<para>Converts URL-friendly escape sequences back to normal text.</para>
</summary>
<param name="s">A string containing escaped characters.</param>
<param name="e">The text encoding to use.</param>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.VRModule</name>
</assembly>
<member name="T:UnityEngine.XR.InputTracking">
<summary>
<para>A collection of methods and properties for interacting with the XR tracking system.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.InputTracking.disablePositionalTracking">
<summary>
<para>Disables positional tracking in XR. This takes effect the next time the head pose is sampled. If set to true the camera only tracks headset rotation state.</para>
</summary>
</member>
<member name="?:UnityEngine.XR.InputTracking.nodeAdded(System.Action`1&lt;UnityEngine.XR.XRNodeState&gt;)">
<summary>
<para>Called when a tracked node is added to the underlying XR system.</para>
</summary>
<param name="nodeState">Describes the node that has been added.</param>
<param name="value"></param>
</member>
<member name="?:UnityEngine.XR.InputTracking.nodeRemoved(System.Action`1&lt;UnityEngine.XR.XRNodeState&gt;)">
<summary>
<para>Called when a tracked node is removed from the underlying XR system.</para>
</summary>
<param name="nodeState">Describes the node that has been removed.</param>
<param name="value"></param>
</member>
<member name="?:UnityEngine.XR.InputTracking.trackingAcquired(System.Action`1&lt;UnityEngine.XR.XRNodeState&gt;)">
<summary>
<para>Called when a tracked node begins reporting tracking information.</para>
</summary>
<param name="nodeState">Describes the node that has begun being tracked.</param>
<param name="value"></param>
</member>
<member name="?:UnityEngine.XR.InputTracking.trackingLost(System.Action`1&lt;UnityEngine.XR.XRNodeState&gt;)">
<summary>
<para>Called when a tracked node stops reporting tracking information.</para>
</summary>
<param name="nodeState">Describes the node that has lost tracking.</param>
<param name="value"></param>
</member>
<member name="M:UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode)">
<summary>
<para>Gets the position of a specific node.</para>
</summary>
<param name="node">Specifies which node's position should be returned.</param>
<returns>
<para>The position of the node in its local tracking space.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.InputTracking.GetLocalRotation(UnityEngine.XR.XRNode)">
<summary>
<para>Gets the rotation of a specific node.</para>
</summary>
<param name="node">Specifies which node's rotation should be returned.</param>
<returns>
<para>The rotation of the node in its local tracking space.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.InputTracking.GetNodeName(System.UInt64)">
<summary>
<para>Accepts the unique identifier for a tracked node and returns a friendly name for it.</para>
</summary>
<param name="uniqueID">The unique identifier for the Node index.</param>
<returns>
<para>The name of the tracked node if the given 64-bit identifier maps to a currently tracked node. Empty string otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.InputTracking.GetNodeStates">
<summary>
<para>Describes all presently connected XR nodes and provides available tracking state.</para>
</summary>
<param name="nodeStates">A list that is populated with XR.XRNodeState objects.</param>
</member>
<member name="M:UnityEngine.XR.InputTracking.Recenter">
<summary>
<para>Center tracking to the current position and orientation of the HMD.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.TrackingSpaceType">
<summary>
<para>Represents the size of physical space available for XR.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.TrackingSpaceType.RoomScale">
<summary>
<para>Represents a space large enough for free movement.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.TrackingSpaceType.Stationary">
<summary>
<para>Represents a small space where movement may be constrained or positional tracking is unavailable.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.UserPresenceState">
<summary>
<para>Represents the current user presence state detected by the device.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.UserPresenceState.NotPresent">
<summary>
<para>The device does not detect that the user is present.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.UserPresenceState.Present">
<summary>
<para>The device detects that the user is present.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.UserPresenceState.Unknown">
<summary>
<para>The device is currently in a state where it cannot determine user presence.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.UserPresenceState.Unsupported">
<summary>
<para>The device does not support detecting user presence.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.WSA.HolographicSettings">
<summary>
<para>The Holographic Settings contain functions which effect the performance and presentation of Holograms on Windows Holographic platforms.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.WSA.HolographicSettings.ActivateLatentFramePresentation(System.Boolean)">
<summary>
<para>Option to allow developers to achieve higher framerate at the cost of high latency. By default this option is off.</para>
</summary>
<param name="activated">True to enable or false to disable Low Latent Frame Presentation.</param>
</member>
<member name="T:UnityEngine.XR.WSA.HolographicSettings.HolographicReprojectionMode">
<summary>
<para>Represents the kind of reprojection an app is requesting to stabilize its holographic rendering relative to the user's head motion.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.HolographicSettings.HolographicReprojectionMode.Disabled">
<summary>
<para>The image should not be stabilized for the user's head motion, instead remaining fixed in the display. This is generally discouraged, as it is only comfortable for users when used sparingly, such as when the only visible content is a small cursor.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.HolographicSettings.HolographicReprojectionMode.OrientationOnly">
<summary>
<para>The image should be stabilized only for changes to the user's head orientation, ignoring positional changes. This is best for body-locked content that should tag along with the user as they walk around, such as 360-degree video.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.HolographicSettings.HolographicReprojectionMode.PositionAndOrientation">
<summary>
<para>The image should be stabilized for changes to both the user's head position and orientation. This is best for world-locked content that should remain physically stationary as the user walks around.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.WSA.HolographicSettings.IsContentProtectionEnabled">
<summary>
<para>Whether the app is displaying protected content.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.WSA.HolographicSettings.IsLatentFramePresentation">
<summary>
<para>Returns true if Holographic rendering is currently running with Latent Frame Presentation. Default value is false.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.WSA.HolographicSettings.ReprojectionMode">
<summary>
<para>The kind of reprojection the app is requesting to stabilize its holographic rendering relative to the user's head motion.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.WSA.PositionalLocatorState">
<summary>
<para>Indicates the lifecycle state of the device's spatial location system.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.PositionalLocatorState.Activating">
<summary>
<para>The device is reporting its orientation and is preparing to locate its position in the user's surroundings.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.PositionalLocatorState.Active">
<summary>
<para>The device is reporting its orientation and position in the user's surroundings.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.PositionalLocatorState.Inhibited">
<summary>
<para>The device is reporting its orientation but cannot locate its position in the user's surroundings due to external factors like poor lighting conditions.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.PositionalLocatorState.OrientationOnly">
<summary>
<para>The device is reporting its orientation and has not been asked to report its position in the user's surroundings.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.WSA.PositionalLocatorState.Unavailable">
<summary>
<para>The device's spatial location system is not available.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.WSA.WorldManager">
<summary>
<para>This class represents the state of the real world tracking system.</para>
</summary>
</member>
<member name="T:UnityEngine.XR.XRDevice">
<summary>
<para>Contains all functionality related to a XR device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.family">
<summary>
<para>The name of the family of the loaded XR device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.fovZoomFactor">
<summary>
<para>Zooms the XR projection.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.isPresent">
<summary>
<para>Successfully detected a XR device in working order.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.model">
<summary>
<para>Specific model of loaded XR device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.refreshRate">
<summary>
<para>Refresh rate of the display in Hertz.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRDevice.userPresence">
<summary>
<para>Indicates whether the user is present and interacting with the device.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.XRDevice.DisableAutoXRCameraTracking">
<summary>
<para>Sets whether the camera passed in the first parameter is controlled implicitly by the XR Device</para>
</summary>
<param name="Camera">The camera that we wish to change behavior on</param>
<param name="Disabled">True if the camera's transform is set externally. False if the camera is to be driven implicitly by XRDevice, </param>
<returns>
<para>Nothing.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRDevice.GetNativePtr">
<summary>
<para>This method returns an IntPtr representing the native pointer to the XR device if one is available, otherwise the value will be IntPtr.Zero.</para>
</summary>
<returns>
<para>The native pointer to the XR device.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRDevice.GetTrackingSpaceType">
<summary>
<para>Returns the device's current TrackingSpaceType. This value determines how the camera is positioned relative to its starting position. For more, see the section "Understanding the camera" in.</para>
</summary>
<returns>
<para>The device's current TrackingSpaceType.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRDevice.SetTrackingSpaceType(UnityEngine.XR.TrackingSpaceType)">
<summary>
<para>Sets the device's current TrackingSpaceType. Returns true on success. Returns false if the given TrackingSpaceType is not supported or the device fails to switch.</para>
</summary>
<param name="TrackingSpaceType">The TrackingSpaceType the device should switch to.</param>
<param name="trackingSpaceType"></param>
<returns>
<para>True on success. False if the given TrackingSpaceType is not supported or the device fails to switch.</para>
</returns>
</member>
<member name="T:UnityEngine.XR.XRNode">
<summary>
<para>Enumeration of tracked XR nodes which can be updated by XR input.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.CenterEye">
<summary>
<para>Node representing a point between the left and right eyes.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.GameController">
<summary>
<para>Represents a tracked game Controller not associated with a specific hand.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.HardwareTracker">
<summary>
<para>Represents a physical device that provides tracking data for objects to which it is attached.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.Head">
<summary>
<para>Node representing the user's head.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.LeftEye">
<summary>
<para>Node representing the left eye.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.LeftHand">
<summary>
<para>Node representing the left hand.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.RightEye">
<summary>
<para>Node representing the right eye.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.RightHand">
<summary>
<para>Node representing the right hand.</para>
</summary>
</member>
<member name="F:UnityEngine.XR.XRNode.TrackingReference">
<summary>
<para>Represents a stationary physical device that can be used as a point of reference in the tracked area.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.acceleration">
<summary>
<para>Sets the vector representing the current acceleration of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.angularAcceleration">
<summary>
<para>Sets the vector representing the current angular acceleration of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.angularVelocity">
<summary>
<para>Sets the vector representing the current angular velocity of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.nodeType">
<summary>
<para>The type of the tracked node as specified in XR.XRNode.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.position">
<summary>
<para>Sets the vector representing the current position of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.rotation">
<summary>
<para>Sets the quaternion representing the current rotation of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.tracked">
<summary>
<para>
Set to true if the node is presently being tracked by the underlying XR system,
and false if the node is not presently being tracked by the underlying XR system.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.uniqueID">
<summary>
<para>The unique identifier of the tracked node.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRNodeState.velocity">
<summary>
<para>Sets the vector representing the current velocity of the tracked node.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetAcceleration">
<summary>
<para>Attempt to retrieve a vector representing the current acceleration of the tracked node.</para>
</summary>
<returns>
<para>True if the acceleration was set in the output parameter. False if the acceleration is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetAngularAcceleration(UnityEngine.Vector3&amp;)">
<summary>
<para>Attempt to retrieve a Vector3 representing the current angular acceleration of the tracked node.</para>
</summary>
<param name="angularAcceleration"></param>
<returns>
<para>True if the angular acceleration was set in the output parameter. False if the angular acceleration is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetAngularVelocity(UnityEngine.Vector3&amp;)">
<summary>
<para>Attempt to retrieve a Vector3 representing the current angular velocity of the tracked node.</para>
</summary>
<param name="angularVelocity"></param>
<returns>
<para>True if the angular velocity was set in the output parameter. False if the angular velocity is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetPosition">
<summary>
<para>Attempt to retrieve a vector representing the current position of the tracked node.</para>
</summary>
<returns>
<para>True if the position was set in the output parameter. False if the position is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetRotation">
<summary>
<para>Attempt to retrieve a quaternion representing the current rotation of the tracked node.</para>
</summary>
<returns>
<para>True if the rotation was set in the output parameter. False if the rotation is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRNodeState.TryGetVelocity">
<summary>
<para>Attempt to retrieve a vector representing the current velocity of the tracked node.</para>
</summary>
<returns>
<para>True if the velocity was set in the output parameter. False if the velocity is not available due to limitations of the underlying platform or if the node is not presently tracked.</para>
</returns>
</member>
<member name="T:UnityEngine.XR.XRSettings">
<summary>
<para>Global XR related settings.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.enabled">
<summary>
<para>Globally enables or disables XR for the application.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.eyeTextureDesc">
<summary>
<para>Fetch the eye texture RenderTextureDescriptor from the active stereo device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.eyeTextureHeight">
<summary>
<para>The current height of an eye texture for the loaded device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.eyeTextureResolutionScale">
<summary>
<para>Controls the actual size of eye textures as a multiplier of the device's default resolution.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.eyeTextureWidth">
<summary>
<para>The current width of an eye texture for the loaded device.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.isDeviceActive">
<summary>
<para>Read-only value that can be used to determine if the XR device is active.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.loadedDeviceName">
<summary>
<para>Type of XR device that is currently loaded.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.occlusionMaskScale">
<summary>
<para>A scale applied to the standard occulsion mask for each platform.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.renderScale">
<summary>
<para>This field has been deprecated. Use XRSettings.eyeTextureResolutionScale instead.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.renderViewportScale">
<summary>
<para>Controls how much of the allocated eye texture should be used for rendering.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.showDeviceView">
<summary>
<para>Mirror what is shown on the device to the main display, if possible.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.supportedDevices">
<summary>
<para>Returns a list of supported XR devices that were included at build time.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRSettings.useOcclusionMesh">
<summary>
<para>Specifies whether or not the occlusion mesh should be used when rendering. Enabled by default.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.XRSettings.LoadDeviceByName(System.String)">
<summary>
<para>Loads the requested device at the beginning of the next frame.</para>
</summary>
<param name="deviceName">Name of the device from XRSettings.supportedDevices.</param>
<param name="prioritizedDeviceNameList">Prioritized list of device names from XRSettings.supportedDevices.</param>
</member>
<member name="M:UnityEngine.XR.XRSettings.LoadDeviceByName(System.String[])">
<summary>
<para>Loads the requested device at the beginning of the next frame.</para>
</summary>
<param name="deviceName">Name of the device from XRSettings.supportedDevices.</param>
<param name="prioritizedDeviceNameList">Prioritized list of device names from XRSettings.supportedDevices.</param>
</member>
<member name="T:UnityEngine.XR.XRStats">
<summary>
<para>Timing and other statistics from the XR subsystem.</para>
</summary>
</member>
<member name="P:UnityEngine.XR.XRStats.gpuTimeLastFrame">
<summary>
<para>Total GPU time utilized last frame as measured by the XR subsystem.</para>
</summary>
</member>
<member name="M:UnityEngine.XR.XRStats.TryGetDroppedFrameCount(System.Int32&amp;)">
<summary>
<para>Retrieves the number of dropped frames reported by the XR SDK.</para>
</summary>
<param name="droppedFrameCount">Outputs the number of frames dropped since the last update.</param>
<returns>
<para>True if the dropped frame count is available, false otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRStats.TryGetFramePresentCount(System.Int32&amp;)">
<summary>
<para>Retrieves the number of times the current frame has been drawn to the device as reported by the XR SDK.</para>
</summary>
<param name="framePresentCount">Outputs the number of times the current frame has been presented.</param>
<returns>
<para>True if the frame present count is available, false otherwise.</para>
</returns>
</member>
<member name="M:UnityEngine.XR.XRStats.TryGetGPUTimeLastFrame(System.Single&amp;)">
<summary>
<para>Retrieves the time spent by the GPU last frame, in seconds, as reported by the XR SDK.</para>
</summary>
<param name="gpuTimeLastFrame">Outputs the time spent by the GPU last frame.</param>
<returns>
<para>True if the GPU time spent last frame is available, false otherwise.</para>
</returns>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.VehiclesModule</name>
</assembly>
<member name="T:UnityEngine.WheelCollider">
<summary>
<para>A special collider for vehicle wheels.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.brakeTorque">
<summary>
<para>Brake torque expressed in Newton metres.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.center">
<summary>
<para>The center of the wheel, measured in the object's local space.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.forceAppPointDistance">
<summary>
<para>Application point of the suspension and tire forces measured from the base of the resting wheel.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.forwardFriction">
<summary>
<para>Properties of tire friction in the direction the wheel is pointing in.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.isGrounded">
<summary>
<para>Indicates whether the wheel currently collides with something (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.mass">
<summary>
<para>The mass of the wheel, expressed in kilograms. Must be larger than zero. Typical values would be in range (20,80).</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.motorTorque">
<summary>
<para>Motor torque on the wheel axle expressed in Newton metres. Positive or negative depending on direction.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.radius">
<summary>
<para>The radius of the wheel, measured in local space.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.rpm">
<summary>
<para>Current wheel axle rotation speed, in rotations per minute (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.sidewaysFriction">
<summary>
<para>Properties of tire friction in the sideways direction.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.sprungMass">
<summary>
<para>The mass supported by this WheelCollider.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.steerAngle">
<summary>
<para>Steering angle in degrees, always around the local y-axis.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.suspensionDistance">
<summary>
<para>Maximum extension distance of wheel suspension, measured in local space.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.suspensionSpring">
<summary>
<para>The parameters of wheel's suspension. The suspension attempts to reach a target position by applying a linear force and a damping force.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelCollider.wheelDampingRate">
<summary>
<para>The damping rate of the wheel. Must be larger than zero.</para>
</summary>
</member>
<member name="M:UnityEngine.WheelCollider.ConfigureVehicleSubsteps(System.Single,System.Int32,System.Int32)">
<summary>
<para>Configure vehicle sub-stepping parameters.</para>
</summary>
<param name="speedThreshold">The speed threshold of the sub-stepping algorithm.</param>
<param name="stepsBelowThreshold">Amount of simulation sub-steps when vehicle's speed is below speedThreshold.</param>
<param name="stepsAboveThreshold">Amount of simulation sub-steps when vehicle's speed is above speedThreshold.</param>
</member>
<member name="M:UnityEngine.WheelCollider.GetGroundHit(UnityEngine.WheelHit&amp;)">
<summary>
<para>Gets ground collision data for the wheel.</para>
</summary>
<param name="hit"></param>
</member>
<member name="M:UnityEngine.WheelCollider.GetWorldPose(UnityEngine.Vector3&amp;,UnityEngine.Quaternion&amp;)">
<summary>
<para>Gets the world space pose of the wheel accounting for ground contact, suspension limits, steer angle, and rotation angle (angles in degrees).</para>
</summary>
<param name="pos">Position of the wheel in world space.</param>
<param name="quat">Rotation of the wheel in world space.</param>
</member>
<member name="T:UnityEngine.WheelHit">
<summary>
<para>Contact information for the wheel, reported by WheelCollider.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.collider">
<summary>
<para>The other Collider the wheel is hitting.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.force">
<summary>
<para>The magnitude of the force being applied for the contact.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.forwardDir">
<summary>
<para>The direction the wheel is pointing in.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.forwardSlip">
<summary>
<para>Tire slip in the rolling direction. Acceleration slip is negative, braking slip is positive.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.normal">
<summary>
<para>The normal at the point of contact.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.point">
<summary>
<para>The point of contact between the wheel and the ground.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.sidewaysDir">
<summary>
<para>The sideways direction of the wheel.</para>
</summary>
</member>
<member name="P:UnityEngine.WheelHit.sidewaysSlip">
<summary>
<para>Tire slip in the sideways direction.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.VideoModule</name>
</assembly>
<member name="T:UnityEngine.Experimental.Video.VideoClipPlayable">
<summary>
<para>An implementation of IPlayable that controls playback of a VideoClip.</para>
</summary>
</member>
<member name="M:UnityEngine.Experimental.Video.VideoClipPlayable.Create(UnityEngine.Playables.PlayableGraph,UnityEngine.Video.VideoClip,System.Boolean)">
<summary>
<para>Creates a VideoClipPlayable in the PlayableGraph.</para>
</summary>
<param name="graph">The PlayableGraph object that will own the VideoClipPlayable.</param>
<param name="looping">Indicates if VideoClip loops when it reaches the end.</param>
<param name="clip">VideoClip used to produce textures in the PlayableGraph.</param>
<returns>
<para>A VideoClipPlayable linked to the PlayableGraph.</para>
</returns>
</member>
<member name="T:UnityEngine.Video.Video3DLayout">
<summary>
<para>Types of 3D content layout within a video.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.Video3DLayout.No3D">
<summary>
<para>Video does not have any 3D content.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.Video3DLayout.OverUnder3D">
<summary>
<para>Video contains 3D content where the left eye occupies the upper half and right eye occupies the lower half of video frames.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.Video3DLayout.SideBySide3D">
<summary>
<para>Video contains 3D content where the left eye occupies the left half and right eye occupies the right half of video frames.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoAspectRatio">
<summary>
<para>Methods used to fit a video in the target area.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.FitHorizontally">
<summary>
<para>Resize proportionally so that width fits the target area, cropping or adding black bars above and below if needed.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.FitInside">
<summary>
<para>Resize proportionally so that content fits the target area, adding black bars if needed.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.FitOutside">
<summary>
<para>Resize proportionally so that content fits the target area, cropping if needed.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.FitVertically">
<summary>
<para>Resize proportionally so that height fits the target area, cropping or adding black bars on each side if needed.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.NoScaling">
<summary>
<para>Preserve the pixel size without adjusting for target area.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAspectRatio.Stretch">
<summary>
<para>Resize non-proportionally to fit the target area.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoAudioOutputMode">
<summary>
<para>Places where the audio embedded in a video can be sent.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAudioOutputMode.AudioSource">
<summary>
<para>Send the embedded audio into a specified AudioSource.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAudioOutputMode.Direct">
<summary>
<para>Send the embedded audio direct to the platform's audio hardware.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoAudioOutputMode.None">
<summary>
<para>Disable the embedded audio.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoClip">
<summary>
<para>A container for video data.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.audioTrackCount">
<summary>
<para>Number of audio tracks in the clip.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.frameCount">
<summary>
<para>The length of the VideoClip in frames. (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.frameRate">
<summary>
<para>The frame rate of the clip in frames/second. (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.height">
<summary>
<para>The height of the images in the video clip in pixels. (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.length">
<summary>
<para>The length of the video clip in seconds. (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.originalPath">
<summary>
<para>The video clip path in the project's assets. (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.pixelAspectRatioDenominator">
<summary>
<para>Denominator of the pixel aspect ratio (num:den). (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.pixelAspectRatioNumerator">
<summary>
<para>Numerator of the pixel aspect ratio (num:den). (Read Only).</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoClip.width">
<summary>
<para>The width of the images in the video clip in pixels. (Read Only).</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoClip.GetAudioChannelCount(System.UInt16)">
<summary>
<para>The number of channels in the audio track. E.g. 2 for a stereo track.</para>
</summary>
<param name="audioTrackIdx">Index of the audio queried audio track.</param>
<returns>
<para>The number of channels.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoClip.GetAudioLanguage(System.UInt16)">
<summary>
<para>Get the audio track language. Can be unknown.</para>
</summary>
<param name="audioTrackIdx">Index of the audio queried audio track.</param>
<returns>
<para>The abbreviated name of the language.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoClip.GetAudioSampleRate(System.UInt16)">
<summary>
<para>Get the audio track sampling rate in Hertz.</para>
</summary>
<param name="audioTrackIdx">Index of the audio queried audio track.</param>
<returns>
<para>The sampling rate in Hertz.</para>
</returns>
</member>
<member name="T:UnityEngine.Video.VideoPlayer">
<summary>
<para>Plays video content onto a target.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.aspectRatio">
<summary>
<para>Defines how the video content will be stretched to fill the target area.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.audioOutputMode">
<summary>
<para>Destination for the audio embedded in the video.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.audioTrackCount">
<summary>
<para>Number of audio tracks found in the data source currently configured.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canSetDirectAudioVolume">
<summary>
<para>Whether direct-output volume controls are supported for the current platform and video format. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canSetPlaybackSpeed">
<summary>
<para>Whether the playback speed can be changed. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canSetSkipOnDrop">
<summary>
<para>Determines whether the VideoPlayer skips frames to catch up with current time. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canSetTime">
<summary>
<para>Whether current time can be changed using the time or timeFrames property. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canSetTimeSource">
<summary>
<para>Whether the time source followed by the VideoPlayer can be changed. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.canStep">
<summary>
<para>Returns true if the VideoPlayer can step forward through the video content. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.clip">
<summary>
<para>The clip being played by the VideoPlayer.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.clockResyncOccurred(UnityEngine.Video.VideoPlayer/TimeEventHandler)">
<summary>
<para>Invoked when the VideoPlayer's clock is synced back to its Video.VideoTimeReference.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.controlledAudioTrackCount">
<summary>
<para>Number of audio tracks that this VideoPlayer will take control of. The other ones will be silenced. A maximum of 64 tracks are allowed.
The actual number of audio tracks cannot be known in advance when playing URLs, which is why this value is independent of the Video.VideoPlayer.audioTrackCount property.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.controlledAudioTrackMaxCount">
<summary>
<para>Maximum number of audio tracks that can be controlled.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.errorReceived(UnityEngine.Video.VideoPlayer/ErrorEventHandler)">
<summary>
<para>Errors such as HTTP connection problems are reported through this callback.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.externalReferenceTime">
<summary>
<para>Reference time of the external clock the Video.VideoPlayer uses to correct its drift.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.frame">
<summary>
<para>The frame index currently being displayed by the VideoPlayer.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.frameCount">
<summary>
<para>Number of frames in the current video content.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.frameDropped(UnityEngine.Video.VideoPlayer/EventHandler)">
<summary>
<para>[NOT YET IMPLEMENTED] Invoked when the video decoder does not produce a frame as per the time source during playback.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.frameRate">
<summary>
<para>The frame rate of the clip or URL in frames/second. (Read Only).</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.frameReady(UnityEngine.Video.VideoPlayer/FrameReadyEventHandler)">
<summary>
<para>Invoked when a new frame is ready.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.isLooping">
<summary>
<para>Determines whether the VideoPlayer restarts from the beginning when it reaches the end of the clip.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.isPlaying">
<summary>
<para>Whether content is being played. (Read Only)</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.isPrepared">
<summary>
<para>Whether the VideoPlayer has successfully prepared the content to be played. (Read Only)</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.loopPointReached(UnityEngine.Video.VideoPlayer/EventHandler)">
<summary>
<para>Invoked when the VideoPlayer reaches the end of the content to play.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.playbackSpeed">
<summary>
<para>Factor by which the basic playback rate will be multiplied.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.playOnAwake">
<summary>
<para>Whether the content will start playing back as soon as the component awakes.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.prepareCompleted(UnityEngine.Video.VideoPlayer/EventHandler)">
<summary>
<para>Invoked when the VideoPlayer preparation is complete.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.renderMode">
<summary>
<para>Where the video content will be drawn.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.seekCompleted(UnityEngine.Video.VideoPlayer/EventHandler)">
<summary>
<para>Invoke after a seek operation completes.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.sendFrameReadyEvents">
<summary>
<para>Enables the frameReady events.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.skipOnDrop">
<summary>
<para>Whether the VideoPlayer is allowed to skip frames to catch up with current time.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.source">
<summary>
<para>The source that the VideoPlayer uses for playback.</para>
</summary>
</member>
<member name="?:UnityEngine.Video.VideoPlayer.started(UnityEngine.Video.VideoPlayer/EventHandler)">
<summary>
<para>Invoked immediately after Play is called.</para>
</summary>
<param name="value"></param>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetCamera">
<summary>
<para>Camera component to draw to when Video.VideoPlayer.renderMode is set to either Video.VideoTarget.CameraFarPlane or Video.VideoTarget.CameraNearPlane.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetCamera3DLayout">
<summary>
<para>Type of 3D content contained in the source video media.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetCameraAlpha">
<summary>
<para>Overall transparency level of the target camera plane video.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetMaterialProperty">
<summary>
<para>Material texture property which is targeted when Video.VideoPlayer.renderMode is set to Video.VideoTarget.MaterialOverride.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetMaterialRenderer">
<summary>
<para>Renderer which is targeted when Video.VideoPlayer.renderMode is set to Video.VideoTarget.MaterialOverride</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.targetTexture">
<summary>
<para>RenderTexture to draw to when Video.VideoPlayer.renderMode is set to Video.VideoTarget.RenderTexture.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.texture">
<summary>
<para>Internal texture in which video content is placed.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.time">
<summary>
<para>The VideoPlayer current time in seconds.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.timeReference">
<summary>
<para>The clock that the Video.VideoPlayer observes to detect and correct drift.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.timeSource">
<summary>
<para>[NOT YET IMPLEMENTED] The source used used by the VideoPlayer to derive its current time.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.url">
<summary>
<para>The file or HTTP URL that the VideoPlayer will read content from.</para>
</summary>
</member>
<member name="P:UnityEngine.Video.VideoPlayer.waitForFirstFrame">
<summary>
<para>Determines whether the VideoPlayer will wait for the first frame to be loaded into the texture before starting playback when Video.VideoPlayer.playOnAwake is on.</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.EnableAudioTrack(System.UInt16,System.Boolean)">
<summary>
<para>Enable/disable audio track decoding. Only effective when the VideoPlayer is not currently playing.</para>
</summary>
<param name="trackIndex">Index of the audio track to enable/disable.</param>
<param name="enabled">True for enabling the track. False for disabling the track.</param>
</member>
<member name="T:UnityEngine.Video.VideoPlayer.ErrorEventHandler">
<summary>
<para>Delegate type for VideoPlayer events that contain an error message.</para>
</summary>
<param name="source">The VideoPlayer that is emitting the event.</param>
<param name="message">Message describing the error just encountered.</param>
</member>
<member name="T:UnityEngine.Video.VideoPlayer.EventHandler">
<summary>
<para>Delegate type for all parameter-less events emitted by VideoPlayers.</para>
</summary>
<param name="source">The VideoPlayer that is emitting the event.</param>
</member>
<member name="T:UnityEngine.Video.VideoPlayer.FrameReadyEventHandler">
<summary>
<para>Delegate type for VideoPlayer events that carry a frame number.</para>
</summary>
<param name="source">The VideoPlayer that is emitting the event.</param>
<param name="frameNum">The frame the VideoPlayer is now at.</param>
<param name="frameIdx"></param>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.GetAudioChannelCount(System.UInt16)">
<summary>
<para>The number of audio channels in the specified audio track.</para>
</summary>
<param name="trackIndex">Index for the audio track being queried.</param>
<returns>
<para>Number of audio channels.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.GetAudioLanguageCode(System.UInt16)">
<summary>
<para>Returns the language code, if any, for the specified track.</para>
</summary>
<param name="trackIndex">Index of the audio track to query.</param>
<returns>
<para>Language code.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.GetDirectAudioMute(System.UInt16)">
<summary>
<para>Get the direct-output audio mute status for the specified track.</para>
</summary>
<param name="trackIndex"></param>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.GetDirectAudioVolume(System.UInt16)">
<summary>
<para>Return the direct-output volume for specified track.</para>
</summary>
<param name="trackIndex">Track index for which the volume is queried.</param>
<returns>
<para>Volume, between 0 and 1.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.GetTargetAudioSource(System.UInt16)">
<summary>
<para>Gets the AudioSource that will receive audio samples for the specified track if Video.VideoPlayer.audioOutputMode is set to Video.VideoAudioOutputMode.AudioSource.</para>
</summary>
<param name="trackIndex">Index of the audio track for which the AudioSource is wanted.</param>
<returns>
<para>The source associated with the audio track.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.IsAudioTrackEnabled(System.UInt16)">
<summary>
<para>Returns whether decoding for the specified audio track is enabled. See Video.VideoPlayer.EnableAudioTrack for distinction with mute.</para>
</summary>
<param name="trackIndex">Index of the audio track being queried.</param>
<returns>
<para>True if decoding for the specified audio track is enabled.</para>
</returns>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.Pause">
<summary>
<para>Pauses the playback and leaves the current time intact.</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.Play">
<summary>
<para>Starts playback.</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.Prepare">
<summary>
<para>Initiates playback engine prepration.</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.SetDirectAudioMute(System.UInt16,System.Boolean)">
<summary>
<para>Set the direct-output audio mute status for the specified track.</para>
</summary>
<param name="trackIndex">Track index for which the mute is set.</param>
<param name="mute">Mute on/off.</param>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.SetDirectAudioVolume(System.UInt16,System.Single)">
<summary>
<para>Set the direct-output audio volume for the specified track.</para>
</summary>
<param name="trackIndex">Track index for which the volume is set.</param>
<param name="volume">New volume, between 0 and 1.</param>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.SetTargetAudioSource(System.UInt16,UnityEngine.AudioSource)">
<summary>
<para>Sets the AudioSource that will receive audio samples for the specified track if this audio target is selected with Video.VideoPlayer.audioOutputMode.</para>
</summary>
<param name="trackIndex">Index of the audio track to associate with the specified AudioSource.</param>
<param name="source">AudioSource to associate with the audio track.</param>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.StepForward">
<summary>
<para>Advances the current time by one frame immediately.</para>
</summary>
</member>
<member name="M:UnityEngine.Video.VideoPlayer.Stop">
<summary>
<para>Pauses the playback and sets the current time to 0.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoPlayer.TimeEventHandler">
<summary>
<para>Delegate type for VideoPlayer events that carry a time position.</para>
</summary>
<param name="source">The VideoPlayer that is emitting the event.</param>
<param name="seconds">Time position.</param>
</member>
<member name="T:UnityEngine.Video.VideoRenderMode">
<summary>
<para>Type of destination for the images read by a VideoPlayer.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoRenderMode.APIOnly">
<summary>
<para>Don't draw the video content anywhere, but still make it available via the VideoPlayer's texture property in the API.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoRenderMode.CameraFarPlane">
<summary>
<para>Draw video content behind a camera's scene.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoRenderMode.CameraNearPlane">
<summary>
<para>Draw video content in front of a camera's scene.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoRenderMode.MaterialOverride">
<summary>
<para>Draw the video content into a user-specified property of the current GameObject's material.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoRenderMode.RenderTexture">
<summary>
<para>Draw video content into a RenderTexture.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoSource">
<summary>
<para>Source of the video content for a VideoPlayer.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoSource.Url">
<summary>
<para>Use the current URL as the video content source.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoSource.VideoClip">
<summary>
<para>Use the current clip as the video content source.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoTimeReference">
<summary>
<para>The clock that the Video.VideoPlayer observes to detect and correct drift.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoTimeReference.ExternalTime">
<summary>
<para>External reference clock the Video.VideoPlayer observes to detect and correct drift.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoTimeReference.Freerun">
<summary>
<para>Disables the drift detection.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoTimeReference.InternalTime">
<summary>
<para>Internal reference clock the Video.VideoPlayer observes to detect and correct drift.</para>
</summary>
</member>
<member name="T:UnityEngine.Video.VideoTimeSource">
<summary>
<para>Time source followed by the Video.VideoPlayer when reading content.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoTimeSource.AudioDSPTimeSource">
<summary>
<para>The audio hardware clock.</para>
</summary>
</member>
<member name="F:UnityEngine.Video.VideoTimeSource.GameTimeSource">
<summary>
<para>The unscaled game time as defined by Time.realtimeSinceStartup.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.WebModule</name>
</assembly>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine.WindModule</name>
</assembly>
<member name="T:UnityEngine.WindZone">
<summary>
<para>Wind Zones add realism to the trees you create by making them wave their branches and leaves as if blown by the wind.</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.mode">
<summary>
<para>Defines the type of wind zone to be used (Spherical or Directional).</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.radius">
<summary>
<para>Radius of the Spherical Wind Zone (only active if the WindZoneMode is set to Spherical).</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.windMain">
<summary>
<para>The primary wind force.</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.windPulseFrequency">
<summary>
<para>Defines the frequency of the wind changes.</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.windPulseMagnitude">
<summary>
<para>Defines ow much the wind changes over time.</para>
</summary>
</member>
<member name="P:UnityEngine.WindZone.windTurbulence">
<summary>
<para>The turbulence wind force.</para>
</summary>
</member>
<member name="M:UnityEngine.WindZone.#ctor">
<summary>
<para>The constructor.</para>
</summary>
</member>
<member name="T:UnityEngine.WindZoneMode">
<summary>
<para>Modes a Wind Zone can have, either Spherical or Directional.</para>
</summary>
</member>
<member name="F:UnityEngine.WindZoneMode.Directional">
<summary>
<para>Wind zone affects the entire scene in one direction.</para>
</summary>
</member>
<member name="F:UnityEngine.WindZoneMode.Spherical">
<summary>
<para>Wind zone only has an effect inside the radius, and has a falloff from the center towards the edge.</para>
</summary>
</member>
</members>
</doc>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<doc>
<members>
<assembly>
<name>UnityEngine</name>
</assembly>
</members>
</doc>
wait-for-native-debugger=0
scripting-runtime-version=latest
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSQuitAlwaysKeepsWindows</key>
<false/>
<key>Screenmanager Is Fullscreen mode</key>
<string>True</string>
</dict>
</plist>
{
IBClasses = (
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
{
CLASS = KeyConfig;
LANGUAGE = ObjC;
OUTLETS = {"m_KeyLabel" = id; "m_Progress" = id; };
SUPERCLASS = NSObject;
}
);
IBVersion = 1;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
<string>69 14 356 240 0 0 1280 832 </string>
<key>IBFramework Version</key>
<string>439.0</string>
<key>IBOpenObjects</key>
<array>
<integer>5</integer>
</array>
<key>IBSystem Version</key>
<string>8B15</string>
</dict>
</plist>
{
IBClasses = (
{
CLASS = FirstResponder;
LANGUAGE = ObjC;
SUPERCLASS = NSObject;
},
{
ACTIONS = {
ToggleFullscreen = id;
};
CLASS = PlayerAppDelegate;
LANGUAGE = ObjC;
OUTLETS = {
"m_AboutBox" = id;
"m_AboutMenuItem" = id;
"m_FullscreenMenuItem" = id;
"m_HideMenuItem" = id;
"m_QuitMenuItem" = id;
};
SUPERCLASS = NSObject;
},
{
CLASS = PlayerApplication;
LANGUAGE = ObjC;
SUPERCLASS = NSApplication;
}
);
IBVersion = 1;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
<string>800 216 356 240 0 0 1440 878 </string>
<key>IBEditorPositions</key>
<dict>
<key>29</key>
<string>59 447 210 44 0 0 1440 878 </string>
</dict>
<key>IBFramework Version</key>
<string>489.0</string>
<key>IBOpenObjects</key>
<array>
<integer>251</integer>
<integer>29</integer>
</array>
<key>IBSystem Version</key>
<string>9C7010</string>
<key>IBUsesTextArchiving</key>
<true/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBClasses</key>
<array>
<dict>
<key>ACTIONS</key>
<dict>
<key>Play</key>
<string>id</string>
<key>Quit</key>
<string>id</string>
<key>SaveAndQuit</key>
<string>id</string>
</dict>
<key>CLASS</key>
<string>ScreenSelector</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>OUTLETS</key>
<dict>
<key>m_GraphicsQuality</key>
<string>id</string>
<key>m_Input</key>
<string>id</string>
<key>m_OptionKey</key>
<string>id</string>
<key>m_ScreenResolution</key>
<string>id</string>
<key>m_Windowed</key>
<string>id</string>
</dict>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
<dict>
<key>CLASS</key>
<string>FirstResponder</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>SUPERCLASS</key>
<string>NSObject</string>
</dict>
<dict>
<key>CLASS</key>
<string>ScreenSelectorTableView</string>
<key>LANGUAGE</key>
<string>ObjC</string>
<key>SUPERCLASS</key>
<string>NSTableView</string>
</dict>
</array>
<key>IBVersion</key>
<string>1</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment version="1050" identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12121"/>
<capability name="box content view" minToolsVersion="7.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="ScreenSelector">
<connections>
<outlet property="m_GpuDevice" destination="97" id="oer-bo-hlx"/>
<outlet property="m_GraphicsQuality" destination="33" id="54"/>
<outlet property="m_Input" destination="69" id="76"/>
<outlet property="m_OptionKey" destination="17" id="23"/>
<outlet property="m_ScreenResolution" destination="13" id="25"/>
<outlet property="m_Windowed" destination="55" id="56"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Didn't set title" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" visibleAtLaunch="NO" frameAutosaveName="ScreenSetup" animationBehavior="default" id="12" userLabel="Window">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="347" y="172" width="482" height="572"/>
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
<value key="minSize" type="size" width="171.02500000000001" height="100"/>
<value key="maxSize" type="size" width="600" height="600"/>
<view key="contentView" misplaced="YES" id="11">
<rect key="frame" x="0.0" y="0.0" width="482" height="572"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView misplaced="YES" id="5">
<rect key="frame" x="17" y="376" width="448" height="179"/>
<autoresizingMask key="autoresizingMask"/>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageFrameStyle="grayBezel" image="ScreenSelector" id="80"/>
</imageView>
<button verticalHuggingPriority="750" imageHugsTitle="YES" id="7">
<rect key="frame" x="14" y="12" width="78" height="32"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="push" title="Quit" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="81">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent">q</string>
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
</buttonCell>
<connections>
<action selector="Quit:" target="-2" id="22"/>
</connections>
</button>
<button verticalHuggingPriority="750" imageHugsTitle="YES" id="14">
<rect key="frame" x="378" y="12" width="90" height="32"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="push" title="Play!" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="82">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
</buttonCell>
<connections>
<action selector="Play:" target="-2" id="20"/>
</connections>
</button>
<button imageHugsTitle="YES" id="17">
<rect key="frame" x="25" y="58" width="319" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="check" title="Only show this dialog if the option key is down" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="83">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button verticalHuggingPriority="750" imageHugsTitle="YES" id="29">
<rect key="frame" x="92" y="12" width="127" height="32"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="push" title="Save and Quit" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="84">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="SaveAndQuit:" target="-2" id="30"/>
</connections>
</button>
<tabView misplaced="YES" id="63">
<rect key="frame" x="13" y="77" width="456" height="300"/>
<autoresizingMask key="autoresizingMask"/>
<font key="font" metaFont="message"/>
<tabViewItems>
<tabViewItem label="Graphics" identifier="" id="64">
<view key="view" id="66">
<rect key="frame" x="10" y="33" width="436" height="254"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<box misplaced="YES" title="Graphics Quality" id="49">
<rect key="frame" x="277" y="52" width="139" height="181"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" id="NzC-00-Dm7">
<rect key="frame" x="2" y="2" width="135" height="164"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<matrix verticalHuggingPriority="750" allowsEmptySelection="NO" autosizesCells="NO" id="33">
<rect key="frame" x="14" y="9" width="111" height="140"/>
<autoresizingMask key="autoresizingMask"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="111" height="21"/>
<size key="intercellSpacing" width="4" height="2"/>
<buttonCell key="prototype" type="radio" title="Radio" imagePosition="left" alignment="left" inset="2" id="87">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<cells>
<column>
<buttonCell type="radio" title="Fastest" imagePosition="left" alignment="left" state="on" inset="2" id="42">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<buttonCell type="radio" title="Fast" imagePosition="left" alignment="left" tag="1" inset="2" id="43">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<buttonCell type="radio" title="Simple" imagePosition="left" alignment="left" tag="2" inset="2" id="44">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<buttonCell type="radio" title="Good" imagePosition="left" alignment="left" tag="3" inset="2" id="45">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<buttonCell type="radio" title="Beautiful" imagePosition="left" alignment="left" tag="4" inset="2" id="46">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<buttonCell type="radio" title="Fantastic" imagePosition="left" alignment="left" tag="5" inset="2" id="47">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</column>
</cells>
</matrix>
</subviews>
</view>
</box>
<box misplaced="YES" title="Screen resolution" id="51">
<rect key="frame" x="17" y="52" width="251" height="181"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" id="Rlc-S6-cce">
<rect key="frame" x="2" y="2" width="247" height="164"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" id="10">
<rect key="frame" x="7" y="7" width="235" height="153"/>
<autoresizingMask key="autoresizingMask"/>
<clipView key="contentView" id="hx4-LF-5y5">
<rect key="frame" x="0.0" y="0.0" width="235" height="153"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" id="13" customClass="ScreenSelectorTableView">
<rect key="frame" x="0.0" y="0.0" width="235" height="153"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn editable="NO" width="183" minWidth="40" maxWidth="1000" id="9">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
</tableHeaderCell>
<textFieldCell key="dataCell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" alignment="left" id="91">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</textFieldCell>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="-2" id="27"/>
<outlet property="delegate" destination="-2" id="28"/>
</connections>
</tableView>
</subviews>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="95">
<rect key="frame" x="-100" y="-100" width="186" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="96">
<rect key="frame" x="-30" y="0.0" width="15" height="153"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<connections>
<outlet property="nextKeyView" destination="14" id="31"/>
</connections>
</scrollView>
</subviews>
</view>
</box>
<button misplaced="YES" imageHugsTitle="YES" id="55">
<rect key="frame" x="25" y="32" width="97" height="18"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="check" title="Windowed" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="85">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="6NR-YJ-YqE">
<rect key="frame" x="25" y="10" width="150" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Graphics device to use" id="3AW-k6-2TP">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" misplaced="YES" id="97">
<rect key="frame" x="195" y="4" width="221" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="Automatic" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="102" id="98">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="99">
<items>
<menuItem title="Automatic" state="on" id="102"/>
<menuItem title="Item 2" id="101"/>
<menuItem title="Item 3" id="100"/>
</items>
</menu>
</popUpButtonCell>
</popUpButton>
</subviews>
</view>
</tabViewItem>
<tabViewItem label="Input" identifier="" id="65">
<view key="view" id="67">
<rect key="frame" x="10" y="33" width="436" height="254"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" id="68">
<rect key="frame" x="20" y="33" width="396" height="206"/>
<autoresizingMask key="autoresizingMask"/>
<clipView key="contentView" id="8iZ-vu-BoP">
<rect key="frame" x="1" y="0.0" width="394" height="205"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" tag="1" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" headerView="93" id="69" customClass="ScreenSelectorTableView">
<rect key="frame" x="0.0" y="0.0" width="394" height="182"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn editable="NO" width="146" minWidth="40" maxWidth="1000" id="71">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Control">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" id="89">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
<tableColumn width="110" minWidth="48.35302734375" maxWidth="1000" id="70">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Primary">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" id="88">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
<tableColumn identifier="1" width="129.0166015625" minWidth="58.5166015625" maxWidth="1000" id="78">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Secondary">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" id="90">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="-2" id="75"/>
<outlet property="delegate" destination="-2" id="74"/>
</connections>
</tableView>
</subviews>
</clipView>
<scroller key="horizontalScroller" verticalHuggingPriority="750" horizontal="YES" id="92">
<rect key="frame" x="1" y="189" width="394" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" verticalHuggingPriority="750" horizontal="NO" id="94">
<rect key="frame" x="379" y="23" width="16" height="182"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<tableHeaderView key="headerView" id="93">
<rect key="frame" x="0.0" y="0.0" width="394" height="23"/>
<autoresizingMask key="autoresizingMask"/>
</tableHeaderView>
</scrollView>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="77">
<rect key="frame" x="20" y="10" width="221" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="86">
<font key="font" metaFont="label"/>
<string key="title">Double-click an entry to change it.
</string>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
</view>
</tabViewItem>
</tabViewItems>
</tabView>
</subviews>
</view>
<connections>
<outlet property="delegate" destination="-2" id="57"/>
</connections>
<point key="canvasLocation" x="139" y="169"/>
</window>
</objects>
<resources>
<image name="ScreenSelector" width="128" height="128"/>
</resources>
</document>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBFramework Version</key>
<string>677</string>
<key>IBOldestOS</key>
<integer>5</integer>
<key>IBOpenObjects</key>
<array>
<integer>11</integer>
</array>
<key>IBSystem Version</key>
<string>9J61</string>
<key>targetFramework</key>
<string>IBCocoaFramework</string>
</dict>
</plist>