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
- DataGridViewRowHeightInfoNeededEventArgs.cs
- ManifestSignatureInformation.cs
- PlatformCulture.cs
- Column.cs
- ContextMarshalException.cs
- XPathAncestorQuery.cs
- ISAPIApplicationHost.cs
- TypedDatasetGenerator.cs
- AuthenticationModulesSection.cs
- base64Transforms.cs
- securestring.cs
- TraceXPathNavigator.cs
- GridLengthConverter.cs
- MULTI_QI.cs
- SqlExpander.cs
- GenericRootAutomationPeer.cs
- dsa.cs
- RemoveStoryboard.cs
- InputLanguageProfileNotifySink.cs
- JsonQNameDataContract.cs
- Registry.cs
- SqlGatherConsumedAliases.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- IpcClientManager.cs
- SqlDeflator.cs
- Utility.cs
- PlanCompilerUtil.cs
- TypeForwardedToAttribute.cs
- DetailsViewUpdateEventArgs.cs
- Documentation.cs
- InputEventArgs.cs
- VoiceObjectToken.cs
- CodePrimitiveExpression.cs
- EllipticalNodeOperations.cs
- CodeThrowExceptionStatement.cs
- CommentEmitter.cs
- C14NUtil.cs
- BindUriHelper.cs
- StructuredProperty.cs
- HtmlFormParameterWriter.cs
- ViewValidator.cs
- Scene3D.cs
- EpmContentDeSerializerBase.cs
- ReturnEventArgs.cs
- ControlUtil.cs
- AccessDataSource.cs
- SelectionHighlightInfo.cs
- InfiniteIntConverter.cs
- FixedSOMTableCell.cs
- CollectionConverter.cs
- ResourceSetExpression.cs
- FormViewUpdateEventArgs.cs
- IndexedEnumerable.cs
- DataGridParentRows.cs
- HMACSHA384.cs
- Debugger.cs
- _SslSessionsCache.cs
- SplitterPanel.cs
- Animatable.cs
- GroupByExpressionRewriter.cs
- HwndSubclass.cs
- PingReply.cs
- UnsafeNativeMethods.cs
- AxParameterData.cs
- UIElement3D.cs
- UserControlParser.cs
- DefaultParameterValueAttribute.cs
- IApplicationTrustManager.cs
- InputQueue.cs
- PasswordRecoveryAutoFormat.cs
- SystemDiagnosticsSection.cs
- KeyManager.cs
- SqlMethodTransformer.cs
- StylusLogic.cs
- Qualifier.cs
- ZoneButton.cs
- AxParameterData.cs
- DesignerTextViewAdapter.cs
- FrameworkTemplate.cs
- NameTable.cs
- ToolBar.cs
- CfgParser.cs
- ConsumerConnectionPoint.cs
- TypeResolvingOptions.cs
- TagNameToTypeMapper.cs
- PolyQuadraticBezierSegment.cs
- XsltArgumentList.cs
- XmlValidatingReaderImpl.cs
- sqlnorm.cs
- DispatcherTimer.cs
- ToolStripDropDownMenu.cs
- ClosureBinding.cs
- DecimalFormatter.cs
- DataServiceContext.cs
- AccessDataSource.cs
- Sentence.cs
- DataGridItem.cs
- XmlCodeExporter.cs
- ImageInfo.cs
- SettingsBindableAttribute.cs