Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataWeb / Server / System / Data / Services / Providers / ServiceOperation.cs / 2 / ServiceOperation.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a type to represent custom operations on services.
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Providers
{
using System;
using System.Diagnostics;
using System.Reflection;
/// Use this class to represent a custom service operation.
[DebuggerVisualizer("ServiceOperation={Name}")]
internal class ServiceOperation
{
/// Whether this is an update method or a GET method.
/// Might need to be more specific than this when we design service operation updates.
private readonly bool invoke;
/// for the service operation.
private readonly MethodInfo method;
/// MIME type specified on primitive results, possibly null.
private readonly string mimeType;
/// In-order parameters for this operation.
private readonly ServiceOperationParameter[] parameters;
/// Kind of result expected from this operation.
private readonly ServiceOperationResultKind resultKind;
/// Type of element of the method result.
private readonly Type resultType;
/// Entity set from which entities are read, if applicable.
private ResourceContainer entitySet;
/// Access rights to this service operation.
private ServiceOperationRights rights;
///
/// Initializes a new instance.
///
/// for the service operation.
/// Kind of result expected from this operation.
/// Type of element of the method result.
/// MIME type specified on primitive results, possibly null.
/// Whether this is an update method or a GET method.
/// In-order parameters for this operation.
public ServiceOperation(
MethodInfo method,
ServiceOperationResultKind resultKind,
Type resultType,
string mimeType,
bool invoke,
ServiceOperationParameter[] parameters)
{
Debug.Assert(method != null, "method != null");
Debug.Assert(resultType != null, "resultType != null");
Debug.Assert(parameters != null, "parameters != null");
WebUtil.DebugEnumIsDefined(resultKind);
if (mimeType != null && !WebUtil.IsValidMimeType(mimeType))
{
string message = Strings.ServiceOperation_MimeTypeNotValid(mimeType, method.Name, method.DeclaringType);
throw new InvalidOperationException(message);
}
this.method = method;
this.resultKind = resultKind;
this.resultType = resultType;
this.mimeType = mimeType;
this.invoke = invoke;
this.parameters = parameters;
}
/// Entity set from which entities are read (possibly null).
public ResourceContainer EntitySet
{
get { return this.entitySet; }
set { this.entitySet = value; }
}
/// Whether this is an update method or a GET method.
public bool Invoke
{
get { return this.invoke; }
}
/// for the service operation.
public MethodInfo Method
{
get { return this.method; }
}
/// MIME type specified on primitive results, possibly null.
public string MimeType
{
get { return this.mimeType; }
}
/// Name of the service operation.
public string Name
{
get { return this.method.Name; }
}
/// In-order parameters for this operation.
public ServiceOperationParameter[] Parameters
{
get { return this.parameters; }
}
/// Kind of result expected from this operation.
public ServiceOperationResultKind ResultKind
{
get { return this.resultKind; }
}
/// Element of result type.
///
/// Note that if the method returns an IEnumerable<string>,
/// this property will be typeof(string).
///
public Type ResultType
{
get { return this.resultType; }
}
/// Whether the operation is visible to service consumers.
internal bool IsHidden
{
get { return (this.rights & ~ServiceOperationRights.OverrideEntitySetRights) == ServiceOperationRights.None; }
}
/// Access rights to this service operation.
internal ServiceOperationRights Rights
{
get { return this.rights; }
set { this.rights = value; }
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a type to represent custom operations on services.
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Providers
{
using System;
using System.Diagnostics;
using System.Reflection;
/// Use this class to represent a custom service operation.
[DebuggerVisualizer("ServiceOperation={Name}")]
internal class ServiceOperation
{
/// Whether this is an update method or a GET method.
/// Might need to be more specific than this when we design service operation updates.
private readonly bool invoke;
/// for the service operation.
private readonly MethodInfo method;
/// MIME type specified on primitive results, possibly null.
private readonly string mimeType;
/// In-order parameters for this operation.
private readonly ServiceOperationParameter[] parameters;
/// Kind of result expected from this operation.
private readonly ServiceOperationResultKind resultKind;
/// Type of element of the method result.
private readonly Type resultType;
/// Entity set from which entities are read, if applicable.
private ResourceContainer entitySet;
/// Access rights to this service operation.
private ServiceOperationRights rights;
///
/// Initializes a new instance.
///
/// for the service operation.
/// Kind of result expected from this operation.
/// Type of element of the method result.
/// MIME type specified on primitive results, possibly null.
/// Whether this is an update method or a GET method.
/// In-order parameters for this operation.
public ServiceOperation(
MethodInfo method,
ServiceOperationResultKind resultKind,
Type resultType,
string mimeType,
bool invoke,
ServiceOperationParameter[] parameters)
{
Debug.Assert(method != null, "method != null");
Debug.Assert(resultType != null, "resultType != null");
Debug.Assert(parameters != null, "parameters != null");
WebUtil.DebugEnumIsDefined(resultKind);
if (mimeType != null && !WebUtil.IsValidMimeType(mimeType))
{
string message = Strings.ServiceOperation_MimeTypeNotValid(mimeType, method.Name, method.DeclaringType);
throw new InvalidOperationException(message);
}
this.method = method;
this.resultKind = resultKind;
this.resultType = resultType;
this.mimeType = mimeType;
this.invoke = invoke;
this.parameters = parameters;
}
/// Entity set from which entities are read (possibly null).
public ResourceContainer EntitySet
{
get { return this.entitySet; }
set { this.entitySet = value; }
}
/// Whether this is an update method or a GET method.
public bool Invoke
{
get { return this.invoke; }
}
/// for the service operation.
public MethodInfo Method
{
get { return this.method; }
}
/// MIME type specified on primitive results, possibly null.
public string MimeType
{
get { return this.mimeType; }
}
/// Name of the service operation.
public string Name
{
get { return this.method.Name; }
}
/// In-order parameters for this operation.
public ServiceOperationParameter[] Parameters
{
get { return this.parameters; }
}
/// Kind of result expected from this operation.
public ServiceOperationResultKind ResultKind
{
get { return this.resultKind; }
}
/// Element of result type.
///
/// Note that if the method returns an IEnumerable<string>,
/// this property will be typeof(string).
///
public Type ResultType
{
get { return this.resultType; }
}
/// Whether the operation is visible to service consumers.
internal bool IsHidden
{
get { return (this.rights & ~ServiceOperationRights.OverrideEntitySetRights) == ServiceOperationRights.None; }
}
/// Access rights to this service operation.
internal ServiceOperationRights Rights
{
get { return this.rights; }
set { this.rights = value; }
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SmiEventStream.cs
- Faults.cs
- Vector3DCollectionValueSerializer.cs
- WindowsListViewSubItem.cs
- JsonReader.cs
- CachedCompositeFamily.cs
- FunctionImportMapping.cs
- HtmlElementErrorEventArgs.cs
- DataGridItemCollection.cs
- Send.cs
- EtwTrace.cs
- SqlFunctionAttribute.cs
- PerformanceCounterPermissionEntry.cs
- Visitor.cs
- SchemaNotation.cs
- StrongNameIdentityPermission.cs
- SqlTrackingQuery.cs
- StringToken.cs
- LinqDataView.cs
- RegexTree.cs
- JsonObjectDataContract.cs
- _SslSessionsCache.cs
- ComponentResourceKeyConverter.cs
- ColorBlend.cs
- NativeMethods.cs
- PresentationAppDomainManager.cs
- CompositeScriptReferenceEventArgs.cs
- BasePattern.cs
- InternalBase.cs
- HtmlLiteralTextAdapter.cs
- WebPartHelpVerb.cs
- ReadingWritingEntityEventArgs.cs
- MatrixUtil.cs
- DataServiceResponse.cs
- IERequestCache.cs
- ViewValidator.cs
- SafeBitVector32.cs
- ImageBrush.cs
- BinaryUtilClasses.cs
- GrabHandleGlyph.cs
- RefreshEventArgs.cs
- Win32SafeHandles.cs
- QueryComponents.cs
- AuthenticationModuleElement.cs
- Rotation3D.cs
- DataViewManagerListItemTypeDescriptor.cs
- OleStrCAMarshaler.cs
- ParseHttpDate.cs
- serverconfig.cs
- ToolStripCollectionEditor.cs
- RawAppCommandInputReport.cs
- NumericUpDownAccelerationCollection.cs
- GPPOINTF.cs
- xml.cs
- XmlTextReader.cs
- webeventbuffer.cs
- AssemblyName.cs
- IndexedGlyphRun.cs
- ListViewTableRow.cs
- PersonalizationState.cs
- KeyedCollection.cs
- NullExtension.cs
- ProjectedSlot.cs
- StateFinalizationActivity.cs
- ItemsChangedEventArgs.cs
- XmlDeclaration.cs
- ByteStack.cs
- NullableDecimalAverageAggregationOperator.cs
- ActiveXHelper.cs
- RectAnimationUsingKeyFrames.cs
- ToolStripSplitButton.cs
- Path.cs
- RelationalExpressions.cs
- ViewCellSlot.cs
- PrintingPermission.cs
- CodeDelegateInvokeExpression.cs
- TextEditorTyping.cs
- SafeNativeMethods.cs
- WebPartConnectionsConnectVerb.cs
- SuspendDesigner.cs
- CriticalHandle.cs
- __ConsoleStream.cs
- ArgIterator.cs
- MyContact.cs
- FieldBuilder.cs
- DrawingDrawingContext.cs
- ToolbarAUtomationPeer.cs
- WindowsEditBoxRange.cs
- RealizationDrawingContextWalker.cs
- DockAndAnchorLayout.cs
- DataGridRelationshipRow.cs
- Cursor.cs
- TypeDefinition.cs
- HwndSourceKeyboardInputSite.cs
- SafeMILHandle.cs
- basemetadatamappingvisitor.cs
- DockPanel.cs
- PolygonHotSpot.cs
- NegotiateStream.cs
- ChildrenQuery.cs