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
- RangeBaseAutomationPeer.cs
- TextMarkerSource.cs
- InheritedPropertyDescriptor.cs
- ToolStrip.cs
- CodeCompiler.cs
- XpsFontSerializationService.cs
- SafeViewOfFileHandle.cs
- NextPreviousPagerField.cs
- PolicyLevel.cs
- ExtractedStateEntry.cs
- SecurityElement.cs
- IteratorFilter.cs
- EqualityComparer.cs
- ComplexTypeEmitter.cs
- HttpResponseInternalWrapper.cs
- RegexFCD.cs
- AttributeProviderAttribute.cs
- FontStyles.cs
- RawUIStateInputReport.cs
- PreviewPageInfo.cs
- DataTableCollection.cs
- Int32CollectionConverter.cs
- CodeVariableDeclarationStatement.cs
- TransformGroup.cs
- FrameworkContentElementAutomationPeer.cs
- SystemWebCachingSectionGroup.cs
- DllNotFoundException.cs
- CompilerTypeWithParams.cs
- CurrencyWrapper.cs
- StylusShape.cs
- XamlPathDataSerializer.cs
- DynamicContractTypeBuilder.cs
- OverrideMode.cs
- OdbcUtils.cs
- AssemblyResourceLoader.cs
- PropertyMetadata.cs
- KoreanLunisolarCalendar.cs
- InstanceDataCollection.cs
- Transactions.cs
- PermissionRequestEvidence.cs
- AutoCompleteStringCollection.cs
- ByteStreamGeometryContext.cs
- OlePropertyStructs.cs
- IDReferencePropertyAttribute.cs
- SerTrace.cs
- BindableAttribute.cs
- dbenumerator.cs
- EdgeProfileValidation.cs
- NullableDecimalMinMaxAggregationOperator.cs
- DiagnosticTraceSource.cs
- RangeValidator.cs
- ClipboardData.cs
- AutoCompleteStringCollection.cs
- TextLineBreak.cs
- SHA256Managed.cs
- ProviderException.cs
- UInt32.cs
- BooleanFacetDescriptionElement.cs
- CurrencyWrapper.cs
- ColorBuilder.cs
- MemberInfoSerializationHolder.cs
- SvcMapFile.cs
- XXXInfos.cs
- NotFiniteNumberException.cs
- CollectionChangeEventArgs.cs
- DataTemplateKey.cs
- SizeAnimation.cs
- ResponseBodyWriter.cs
- Point.cs
- util.cs
- QuaternionConverter.cs
- XmlIlGenerator.cs
- ItemCollection.cs
- UnsafeNativeMethods.cs
- XmlHierarchicalEnumerable.cs
- RightsController.cs
- PeerMessageDispatcher.cs
- RectAnimationBase.cs
- DictionaryEntry.cs
- DataGridColumn.cs
- NameValuePermission.cs
- RedistVersionInfo.cs
- UnsafeNativeMethodsTablet.cs
- securitymgrsite.cs
- SortKey.cs
- OdbcDataReader.cs
- TaiwanCalendar.cs
- ListViewItemSelectionChangedEvent.cs
- ObjectConverter.cs
- handlecollector.cs
- ISFTagAndGuidCache.cs
- TypeDelegator.cs
- CommonProperties.cs
- DataListItemEventArgs.cs
- XamlTemplateSerializer.cs
- XhtmlBasicPhoneCallAdapter.cs
- CapabilitiesPattern.cs
- OdbcConnection.cs
- FixedSOMTextRun.cs
- TTSEvent.cs